Возможно тупой вопрос о часовых поясах - PullRequest
1 голос
/ 06 января 2010

Я запутался в том, что мне нужно перепроверить это со всеми вами. Извините, если это действительно глупый вопрос ..

Хорошо - у меня есть веб-приложение PHP, работающее на Linux, которое должно поддерживать часовые пояса. Я предоставляю виджет календаря, который позволяет пользователю установить часовой пояс, а затем выбрать дату и часы / минуты для какого-либо события.

Затем я сохраняю это значение в записи как int, используя. Когда мне нужно снова показать дату пользователю, я просто получаю настройку часового пояса и применяю значение int.

Код:

$dtzone = new DateTimeZone($time_zone);
$dtime = new DateTime($date_time, $dtzone);
$timestamp = $dtime->format('U');
return $timestamp;

Примечания: $ date_time имеет следующий формат: «ГГГГ-ММ-ДД Ч: С» $ time_zone - это то, что они выбрали, например: Америка / Ямайка

Теперь я храню возвращенный int в базе данных.

Затем у меня есть PHP-скрипт, который я выполняю через CRON, который выполняется на сервере в Сиднее - Австралия.

Насколько я понимаю, все, что нужно моему сценарию, - это получить текущую метку времени сервера через time (), а затем выполнить поиск в базе данных любых целых чисел с точно таким же целым числом, полученным вызовом time (). Мне не нужно беспокоиться о том, в каком часовом поясе пользователь выбрал дату / время.

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

Это предположение верно?

Приветствия

Марк

1 Ответ

1 голос
/ 06 января 2010

Если вы храните метки времени как int, то, скорее всего, вы используете метки времени Unix, которые всегда имеют UTC. Временная метка Unix одинакова независимо от того, где она генерируется. Будь то Ямайка, Сидней или Марс.

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