Конвертировать все даты в PHP по местному времени - PullRequest
1 голос
/ 27 октября 2010

Сервер, на котором работает мой PHP-скрипт, настроен на UTC. Я не могу найти способ установить все даты в часовом поясе браузера. Все отображаемые даты форматируются с использованием функции PHP date().

Я знаю, что с помощью функции JavaScript getTimezoneOffset() я могу получить текущее смещение UTC браузера (-4, в моем случае). Как я могу сказать PHP использовать это смещение? Я могу использовать date_default_timezone_set(), но как мне преобразовать смещение, скажем -4, в строку часового пояса, скажем, America / New_York?

Примечание. Сервер работает под управлением PHP 5.1.6 (без класса DateTime), и я использую CodeIgniter.

Ответы [ 3 ]

0 голосов
/ 27 октября 2010

"Я знаю, что могу использовать date_default_timezone_set (), но как мне преобразовать смещение, скажем -4, в строку часового пояса, скажем, America / New_York?"

Просто посмотрите на комментарии, связанные с документацией для этой функции. Комментарий # 99006 сделает всю работу за вас. Вам просто нужно получить смещение часового пояса от пользователя.

0 голосов
/ 27 октября 2010

Согласно комментарию выше, вы можете использовать cookie ...:

Javascript:

var today = new Date();

function SetCookie(cookieName,cookieValue,nDays) {
 var expire = new Date();
 if (nDays==null || nDays==0) nDays=1;
 expire.setTime(today.getTime() + 3600000*24*nDays);
 document.cookie = cookieName+"="+escape(cookieValue)
                 + ";expires="+expire.toGMTString();
}

SetCookie("datecookie", today, 30);

window.location.href=window.location.href

PHP:

echo date("m d Y", strtotime($_COOKIE['datecookie']));
0 голосов
/ 27 октября 2010

Поскольку Javascript основан на клиенте, а PHP - на сервере, они не будут общаться. Чтобы сообщить серверу время браузера, вам необходимо отправить информацию от клиента, возможно, через Ajax, опубликовав время браузера. Затем целевой PHP-скрипт должен обрабатывать / выводить это соответствующим образом. Еще один (тупой) вариант - попытаться определить местоположение пользователя на основе IP, а затем угадать правильное время для этого местоположения, однако это неэффективно для этой цели.

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