Вот заметил (в принципе давно уже) что на Креативе стоит модификация которая проставляет время на русском языке, а именно "Сегодня", "Вчера", "2 часа назад" и так далее...
Не подскажете как её реализовать?
КреатиВ.ТуТ |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » КреатиВ.ТуТ » IPB 1.3 » Время на русском языке
Вот заметил (в принципе давно уже) что на Креативе стоит модификация которая проставляет время на русском языке, а именно "Сегодня", "Вчера", "2 часа назад" и так далее...
Не подскажете как её реализовать?
Тута (Даты) можно посмотреть, а по хорошему лучше дёрнуть из исходного кода, называется "// функция подмены даты"
Отредактировано Grin (2009-04-23 07:54:28)
а по хорошему лучше дёрнуть из исходного кода, называется "// функция подмены даты"
Из исходника это скопировал, и поместил в шапку форума:
// функция подмены даты
function showDate(date1) {
var timeNow = new Date();
var timeUpdate = new Date(date1);
DateStr = date1;yearsIsUp = Math.round((timeNow.getTime() - timeUpdate.getTime())/(24*60*365*60*1000));
monthIsUp = Math.round((timeNow.getTime() - timeUpdate.getTime())/(24*60*30*60*1000));
daysIsUp = Math.round((timeNow.getTime() - timeUpdate.getTime())/(24*60*60*1000));
hoursIsUp = Math.round((timeNow.getTime() - timeUpdate.getTime())/(60*60*1000));
minutesIsUp = Math.round((timeNow.getTime() - timeUpdate.getTime())/(60*1000));if (daysIsUp == 0) {
if (hoursIsUp == 0) {
DateStr = minutesIsUp + " мин. назад";
} else if ((hoursIsUp >= 1) && (hoursIsUp < 3)) {
if ((minutesIsUp > 29) && (minutesIsUp < 60)) {
DateStr = minutesIsUp + " мин. назад";
} else if ((minutesIsUp >= 60) && (minutesIsUp < 70)) {
DateStr = "Час назад";
} else if ((minutesIsUp >= 70) && (minutesIsUp < 100)) {
DateStr = "Полтора часа назад";
} else {
minutes = Math.round((((((minutesIsUp/60)%1)*100)*60)/100));
DateStr = ((minutesIsUp/60) - ((minutesIsUp/60)%1)) + " ч " + minutes + " мин. назад";
}
} else {
DateStr = "Сегодня в " + timeUpdate.getHours() + ":" + timeUpdate.getMinutes() + ":" + timeUpdate.getSeconds();
}
} else if (daysIsUp == 1) {
DateStr = "Вчера в " + timeUpdate.getHours() + ":" + timeUpdate.getMinutes() + ":" + timeUpdate.getSeconds();;
} else if (daysIsUp == 2) {
DateStr = "Позавчера в " + timeUpdate.getHours() + ":" + timeUpdate.getMinutes() + ":" + timeUpdate.getSeconds();;;
} else {
if (yearsIsUp == 0) {
DateStr = DateStr.replace(timeUpdate.getFullYear(),"");
}
}
document.write(DateStr);
}
Эффекта ноль :nea:
2 Haktar:
Еще не хватает:
<script>showDate("{$post['post_date']}")</script>
а куда это ставить не скажу.
Поищи в скинах строку {$post['post_date']}, и там где она есть замени на то что я написал в цитате.
P.S. Найди хотя бы одно место где есть {$post['post_date']}, замени... а там видно будет оно или нет.
Отредактировано Grin (2009-04-23 20:38:20)
а куда это ставить не скажу
Я так понял что в стили, верно?
Поищи в скинах строку {$post['post_date']}, и там где она есть замени на то что я написал в цитате.
P.S. Найди хотя бы одно место где есть {$post['post_date']}, замени... а там видно будет оно или нет.
В раздел <!-- POSTED DATE DIV -->
Поставил, работает... Сейчас буду тестить... Потом отпишусь
Но сразу воопросик. А как насчёт разделов и на главной странице? {$post['post_date']} ведь только на темы распростроняеться....
Хм, хотелось бы чтоб скрипт только отображался так:
Вчера в 22:53:2
Сегодня в 17:37:18
(Позавчера не нужно)
Тоесть чтоб 2 ч 13 мин. назад не было, а было просто Сегодня.
В скрипте копался, хотел внести изменения - не получаеться...
Проверяем.
Код:<script> function showDate(date) { var mondays = new Array (31,28,31,30,31,30,31,31,30,31,30,31); var timeNow = new Date(); var now_month = timeNow.getMonth(); var now_date = timeNow.getDate(); var now_year = timeNow.getFullYear(); var timeUpdate = new Date(date); var old_month = timeUpdate.getMonth(); var old_date = timeUpdate.getDate(); var old_year = timeUpdate.getFullYear(); var old_time = timeUpdate.getHours() + ":" + timeUpdate.getMinutes() + ":" + timeUpdate.getSeconds(); if (now_year % 4 == 0) { mondays.splice(1, 1, "29"); } else { } if (mondays[old_month] == old_date) { old_date = 0; } else { } if (now_month == old_month && now_date == old_date && now_year == old_year) { document.write("Сегодня в " + old_time); } else if ((now_month == old_month || now_month == old_month + 1) && now_date == old_date + 1 && (now_year == old_year || now_year == old_year + 1)) { document.write("Вчера в " + old_time); } else { document.write(date); } } </script>
Отредактировано Grin (2009-04-28 10:39:38)
Проверяем.
Свернутый текстКод:<script> function showDate(date) { var mondays = new Array (31,28,31,30,31,30,31,31,30,31,30,31); var timeNow = new Date(); var now_month = timeNow.getMonth(); var now_date = timeNow.getDate(); var now_year = timeNow.getFullYear(); var timeUpdate = new Date(date); var old_month = timeUpdate.getMonth(); var old_date = timeUpdate.getDate(); var old_year = timeUpdate.getFullYear(); var old_time = timeUpdate.getHours() + ":" + timeUpdate.getMinutes() + ":" + timeUpdate.getSeconds(); if (now_year % 4 == 0) { mondays.splice(1, 1, "29"); } else { } if (mondays[old_month] == old_date) { old_date = 0; } else { } if (now_month == old_month && now_date == old_date && now_year == old_year) { document.write("Сегодня в " + old_time); } else if ((now_month == old_month || now_month == old_month + 1) && now_date == old_date + 1 && (now_year == old_year || now_year == old_year + 1)) { document.write("Вчера в " + old_time); } else { document.write(date); } } </script>
Куда вставлять данный мод?
Вы здесь » КреатиВ.ТуТ » IPB 1.3 » Время на русском языке