Установка часового пояса по умолчанию в PHP - PullRequest
0 голосов
/ 13 марта 2012

В моем веб-приложении я позволяю пользователям выбирать предпочтительный часовой пояс из списка (который содержит все часовые пояса, которые поддерживает PHP ).

Скажем, выбранный $_POST['timezone']часовой пояс ( например America/New_York).Я установил его с помощью следующего кода, который не вызывает ошибок:

default_date_timezone_set($_POST['timezone']);

Но когда я перезагружаю страницу, она возвращается к тому, что было раньше ( например Europe/Moscow).Нужно ли устанавливать часовой пояс по умолчанию в каждом скрипте или функция (default_date_timezone_set) работает неправильно?Спасибо!

Ответы [ 3 ]

2 голосов
/ 13 марта 2012

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

1 голос
/ 13 марта 2012

Установить cookie, который содержит часовой пояс, выбранный пользователем.

/// Make sure you sanitize all POST/COOKIE variables if needed.
$timezone = $_COOKIE['timezone'];

if(isset($_POST['timezone'])) {
    /// Set cookie for some amount of time -- I chose 2 weeks
    setcookie('timezone',$_POST['timezone'],time()+60*60*24*14);
    $timezone = $_POST['timezone'];
}

default_date_timezone_set($timezone);
1 голос
/ 13 марта 2012

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

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