В итоге в минифпрофиле в темах, отображается строка (пример):
"На форуме: 456 дней"
Но, 1-й вариант показывает в строке "NaN дней".
2-й - показывает то "0 дней", то "NaN дней".
Как я понял, это потому, что у меня стоят везде даты в таком формате:
"3 Ноябрь 2013, 15:22" и скрипт ее не воспринимает.
Можно ли как-то это поправить? Или может в скриптах есть ошибки и дело не в дате?
1-й вар.
Код: Выделить всё
<!-- IF postrow.POSTER_POSTS -->
<script type="text/javascript">
p_j = '{postrow.POSTER_JOINED}';
ms='янвфевмарапрмайиюниюлавгсеноктноядек';
d = p_j.substr(0,2)*1;
m = ms.indexOf(p_j.substr(3,3))/3;
y = p_j.substr(7,4)*1;
d0 = new Date(y,m,d);
d1 = new Date();
dt = (d1.getTime() - d0.getTime()) / (1000*60*60*24);
cDay = Math.floor(dt);
cMon = "0";
cNear = "0";
oDay = " 0 ";
tDay = " дней ";
tMon = " месяцев ";
tNear = " лет ";
if (cDay >= 30) cMon = Math.floor(cDay/30.4375);
if (cDay >= 365) cNear = Math.floor(cMon/12);
cDay = cDay-Math.floor(cMon*30.4375);
cMon = cMon-(cNear*12);
if (cDay >=2 && cDay <=4 || cDay >=22 && cDay <=24) tDay = " дня ";
if (cDay ==1 || cDay ==21 || cDay ==31) tDay = " день ";
if (cMon >=2 && cMon <=4) tMon = " месяца ";
if (cMon ==1) tMon = " месяц ";
if (cNear >=2 && cNear <=4 || cNear >=22 && cNear <=24) tNear = " года ";
if (cNear ==1 || cNear ==21 || cNear ==31) tNear = " год ";
document.write('<br /><b>На форуме:</b> ');
if (cMon<1 && cNear<1) document.write(oDay+tDay);
else if (cMon<1 && cNear<1) document.write(cDay+tDay);
else if (cMon>=1 && cNear<1) document.write(cMon+tMon+cDay+tDay);
else document.write(cNear+tNear+cMon+tMon+cDay+tDay);
</script>
<!-- ENDIF -->
Код: Выделить всё
<!-- IF postrow.POSTER_JOINED --><dd><script>
p_j = '{postrow.POSTER_JOINED}';
ms='янвфевмарапрмайиюниюлавгсеноктноядек';
d = p_j.substr(0,2)*1;
m = ms.indexOf(p_j.substr(3,3))/3;
y = p_j.substr(7,4)*1;
date0 = new Date();
date1 = new Date(y,m,d);
dt=Math.floor((date0-date1)/(1000 * 60 * 60 * 24));
de = dt-Math.floor(dt/10)*10;
ds='дней';
if ((dt<10)|(dt>20))
{
if (de==1) ds='день'
else if ((de<5)&(de>0)) ds='дня'
};
document.write('<strong>На форуме:</strong> '+dt+' '+ds);
</script></dd><!-- ENDIF -->
postrow.POSTER_AVATAR
или после строки с IP. Годится для 3.0 и 3.1.Формат даты мне бы менять не хотелось - иначе у меня на форуме внизу на Главной в Статистике надписи на русском станут грамматически некорректные. Пробовал ставить оба варианта, покрутил и так и эдак и результат - "NaN дней" .
В последнее время захотелось всякие фичи добавить на форум самому или юзеры стали чаще просить - хожу ищу по phpbb3 сайтам.