У меня есть приложение PHP, которое должно поддерживать часовые пояса.Теперь я храню значения даты и времени в базе данных как целые числа.Итак, вот что я делаю.
// now create the DateTime object for this time and user time zone
$dtime = new DateTime($date_time, new DateTimeZone($time_zone));
$timestamp = $dtime->format('U');
Что я не понимаю, так это даже если человек находится в Новой Зеландии (Pacific / Auckland) и приложение сохраняет эту дату: 24-12-2010 00:00:00, используя вышеуказанный кодзначение возвращается как: 1293102000
Затем, используя ту же самую дату / время и устанавливая часовой пояс в Лондон (Европа / Лондон), я получаю эту метку времени: 1293148800
Почему метки отличаются?Я думал, что отметка времени будет иметь то же количество секунд, что и та же дата, что и в эпоху Unix?
Если они отличаются, это означает, что когда кто-то ищет в базе данных все записи между 24-12-2010 00:00:00 и 24-12-2010 23:59:59 Мне нужно использовать часовой пояс пользователя для создания временных отметок, и я должен использовать часовой пояс, чтобы сначала создать временные отметки.
Помогите!