отображать время на веб-странице - PullRequest
2 голосов
/ 01 февраля 2010

У меня есть страница, где я перечисляю все комментарии для поста. Рядом с каждым комментарием у меня есть значение времени в полном формате, включая дату / время (2010-01-02 11:11:20).

Я знаю, что могу отформатировать его в PHP перед его отображением, так что это видно;

posted 40 secs ago 
posted 5 days ago

но это было бы неэффективно, так как я собираюсь кэшировать страницу после ее создания.

В SO я вижу, что у них есть какой-то java-скрипт для его показа, поэтому он запускается в браузере клиента:

альтернативный текст http://img528.imageshack.us/img528/5442/35118769.png

Так что в основном мне нужен java-скрипт, который запускается в браузере и который вместо того, чтобы показывать мое шоу даты / времени, "опубликовано 4 часа назад" Любая помощь приветствуется.

Ответы [ 3 ]

8 голосов
/ 01 февраля 2010

Звучит так, как вы хотите: timeago: плагин jQuery .

Timeago - это плагин jQuery, который позволяет легко поддерживать автоматическое обновление нечетких временных отметок (например, «4 минуты назад» или «около 1 дня назад»).

Цитирую дальше:

  • Избегайте отметок времени, датированных «1 минута назад», даже если страница была открыта 10 минут назад; Timeago обновляется автоматически.

  • Вы можете воспользоваться полным преимуществом кэширования страниц в своих веб-приложениях, поскольку временные метки не рассчитываются на сервере.

Так что оно должно соответствовать вашим потребностям.

2 голосов
/ 01 февраля 2010

Вы можете поместить "временную метку" страницы на страницу при ее рендеринге. Это фиксированное время, которое не меняется. Посмотрите на функцию PHP time для этого (http://www.php.net/manual/en/function.time.php).. Она дает вам секунды с начала эпохи UNIX.

Затем, когда страница запущена, используйте объект Javascript Date. Он заключает в себе нечто подобное. Сделайте getTime() для нового объекта Date в Javascript, который даст вам также секунды после эпохи UNIX.

Вычтите одно из другого, чтобы получить истекшее время между тем и настоящим, и сделайте все необходимое для форматирования, чтобы оно отображалось прямо на вашей странице.

Редактировать: См. Также ответ Феликса о timeago, который является отличным инструментом для автоматического выполнения второй половины этого процесса.

0 голосов
/ 01 февраля 2010

Вывод вашей даты в формате, принятом методом parseDate, или в качестве параметра конструктора для даты. Поместите их в некоторые узлы, которые впоследствии можно легко получить с помощью инфраструктуры JavaScript (или ваших собственных методов), а затем выполнить некоторые методы time / datediff для этих значений и заменить содержимое узла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...