Глава Зоны
Дата:
20 Ноя 2013 в 20:28
ВКонтакте дата отображается статично только для позавчерашних новостей, а если пост добавлен сегодня, то отображается отсчет от времени добавления (5 минуты назад, час назад, 3 часа назад и т.д.). Скрипт ниже позволит добиться аналогичного вывода даты и времени. На самом деле, к нам в редакцию поступил простой скрипт, который отображает отсчет от даты вместо даты добавления. Ну, вот я подумал, что лучше будет сделать вывод даты и времени как ВКонтакте. Все работает, но код может показаться большим.
Установка
В вид материалов форума вместо $DATE$ вставьте следующий код:
Код <?if($DATE$='Сегодня')?> <span id="d$ID$"></span> <script type="text/javascript"> function corrDate(t,n){return n!=0?" " + n + " " + t[n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2] + ", ":"";}; (function(time){var everySecond=true,ar=arguments,_=Math.ceil((time-($TIMESTAMP$*1000))/(1000)),day,hour,min,sec,text=[['день','дня', 'дней'], ['час', 'часа', 'часов'], ['минуту', 'минуты', 'минут'], ['секунду', 'секунды', 'секунд']],res; day = Math.floor((_/86400)); _=_-(day*86400); hour = Math.floor((_/3600)); _=_-(hour*3600); min = Math.floor((_/60)); _=_-(min*60); if(min>0) {if(min==1) {res='Минуту назад'} else {if(hour>0) {if(hour=='1') {res='Час назад'} else {res=corrDate(text[1],hour)}} else{res=corrDate(text[2],min)}}} else {res='Только что'} document.getElementById("d$ID$").innerHTML=res.replace(/\,\s$/, " назад"); if (everySecond) {setTimeout(function(){ar.callee(newDate().getTime());},1000);}};)new Date().getTime()); </script> <?else?> $DATE$ в $TIME$ <?endif?> В других модулях вместо $DATE$ вставляем:
Код <?substr($DATE$,0,10)?>
Теперь сила решает, кому выжить.
|