Обработка смещения часового пояса в PHP с отметкой времени UNIX - PullRequest
0 голосов
/ 05 декабря 2010

У меня есть таблица «уведомлений», которые могут отправляться или не отправляться в течение 24 часов.Каждое уведомление имеет свое собственное смещение часового пояса от GMT, поэтому у меня есть столбец для смещения, который будет +/- в секундах.

Мне нужно создать скрипт PHP, который будет регулярно (via cron) проверять базу данныхдля отправленных уведомлений, а затем сбросьте их на неотправленные, если их время прошло 00:00 для этого дня.Я действительно борюсь с лучшим способом сделать это - есть ли простой расчет, который я могу сделать?

Я думал о том, чтобы получить время UNIX для полуночи сервера, используя mktime () [мой серверпо Гринвичу], и обрабатывать его со смещением в секундах, но все, что мне кажется, кажется неправильным.

Что-то вроде:

if(!mktime()-$notifcationTimezone > $serverMidnight){}

Я не говорю, что это неработать, но я не думаю, что это будет работать, когда сервер переходит в другой день.Это просто смущает меня, и я не верю в это.

1 Ответ

0 голосов
/ 05 декабря 2010

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

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

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

...