как узнать местную дату без JavaScript - PullRequest
2 голосов
/ 06 декабря 2011

Здравствуйте, я кодирую окно чата и хочу поставить отметку о текущем местном времени пользователя рядом с его опубликованным сообщением. Поэтому я мог бы использовать JavaScript:

var date = new Date();

и отправить строковую форму переменной на серверный скрипт

а что если Javascript не активирован?

Я знаю, что это очень низкий процент пользователей сети, но я действительно хочу знать, есть ли способ (на стороне сервера) получить локальную дату пользователя в его HTTP-запросе:

что-то вроде $_SERVER['local_date'] было бы здорово? (Я знаю, что его не существует, но в любом случае есть ли подобный путь?)

Ответы [ 3 ]

2 голосов
/ 06 декабря 2011

Единственный способ, которым я могу придумать, - это проанализировать IP-адрес клиента и извлечь из него округ, а затем вычислить разницу во времени.

Однако, хотя это может работать для многих, оно далеко отбудучи надежным, и в некоторых странах есть несколько часовых поясов, так что это довольно далеко.

Я бы посоветовал просто поместить сообщение типа «Чтобы использовать этот чат, пожалуйста, включите JavaScript» внутри <noscript> тегов.

0 голосов
/ 06 декабря 2011

Есть ли способ получить время на стороне клиента, кроме JS? Нет.

Однако в любом случае традиционная реализация работает не так.

Скорее всего, вы не собираетесь использовать время на стороне клиента, а скорее время на стороне клиента смещение .

Традиционная реализация хранит сообщения вместе с соответствующей отметкой времени на стороне сервера в базе данных (сколько времени было на сервере, когда сообщение было получено).

После отображения он настраивается на время клиента, добавляя время клиента смещение .

Смещения времени клиента могут быть определены несколькими различными способами:

  • Javascript
  • По умолчанию используется какой-то часовой пояс, и пользователь может указать другой (эта версия популярна на форумах, где необходимо зарегистрировать учетную запись).

Как только вы установили смещение, настройку можно выполнить в двух местах:

  • Либо в приложении на стороне сервера (PHP и т. Д.), Чтобы время на стороне клиента записывалось на странице.
  • В Javascript

Итак, ответы, представленные до сих пор, верны, но я просто хочу объяснить, как это традиционно делается.

0 голосов
/ 06 декабря 2011

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

...