У меня есть веб-приложение, которое позволяет пользователям выбирать выполнение определенной операции в определенный час в определенный день недели (например, в пятницу, 19:00) - повторение каждый рабочий день.Мои пользователи находятся в разных часовых поясах.Поэтому я хотел бы сохранить день / час в формате одного часового пояса, чтобы мое задание cron, которое выполняется ежечасно, могло запрашивать мою базу данных и быстро собирать все строки, представляющие задачи, которые должны быть выполнены в этот час.Каков наилучший способ сделать это?
По сути, мне нужно знать, как взять пятницу в 19:00 в Бостоне, штат Массачусетс или в субботу в 15:00, Сан-Франциско, штат Калифорния, и конвертировать оба в GMT (и сохранить в моей БД).Таким образом, когда я запускаю свое задание cron раз в час, я точно знаю, какое значение запрашивать базу данных, учитывая, какой день / час по Гринвичу она в настоящий момент.
EDIT 1 Через игру я пришелс чем-то:
date_default_timezone_set('America/New_York');
$time = strtotime('Friday 8:00pm');
echo date('w : G', $time);
echo '<br>';
date_default_timezone_set('GMT');
$date = date('w : G', $time);
echo $time;
echo '<br>';
echo $date;
Вывод:
5 : 20
1331942400
6 : 0
Это в основном правильный трек?
РЕДАКТИРОВАТЬ 2 Полезные детали,Мне действительно повезло, что информация о часовом поясе моего пользователя была сохранена как одна из них: http://www.php.net/manual/en/timezones.php