2014-11-11 5 views
0

Я пытаюсь разрешить ошибку времени, которую я имел. Первая временная метка в строке ниже равна Sunday 11/02/14 00:00, если мы добавим к ней 24 часа, как показано ниже, мы получим Monday 11/03/14 00:00 справа? Если мы добавим к нему 13 часов, как показано ниже, мы должны получить 11/03/14 13:00, я бы подумал!Отметка времени один час

Хотя, не уверен, почему это держит подсчет как 11/03/14 12:00, любые идеи относительно того, почему это так?

$start_time = $start_date + ($day * 24 * 60 * 60) + ($hours * 60 * 60) + ($minutes * 60); 

Переменные распечатаны

$start_time = 1414900800 + (1 * 24 * 60 * 60) + (13 * 60 * 60) + (00 * 60) = 1415034000 //converted to readable date: 11-03-2014 12:00 

ответ

1

Вы получаете эти результаты из-за переключателя Daylight Savings Time между 11/02/2014 и 11/03/2014, вы теряете часах стоит время на основе выбранного вами часового пояса.

+0

Спасибо за ответ! Разве эпоха не должна учитывать это? Есть ли способ сделать такой сценарий летней экономией? – AnchovyLegend

0

попытка date_default_timezone_set:

date_default_timezone_set('America/Los_Angeles'); //uses daylight savings 
date_default_timezone_set('Etc/GMT-8');   //does not use daylight savings 

с нужной временной зоны. Часовой пояс: http://php.net/manual/en/timezones.php. Установите его перед любыми вызовами на день(), strtotime() и т. Д.

Смежные вопросы