Наверняка многим приглянулся вид даты и времени, когда был опубликован пост ВКонтакте. Если времени прошло немного, то показывается полное время (1 минуту назад, 3 часа назад), а если прилично, то выводит тебе дату (1 мая, 12 октября и т.д). Этот скрипт будет полезен в первую очередь держателям новостных сайтов, где статьи выходят пару раз за день. В других случаях тоже неплохо, но всю пользу можно оценить только так.
Установка:
В вид материалов нужного модуля (как правило, новости сайта) вместо кода $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(new Date().getTime());},1000);}})(new Date().getTime());
</script>
<?else?>
$DATE$ в $TIME$
<?endif?>
Готово!
|