1 час пропущен, когда я добавляю секунды вручную

Я знаю, это будет звучать странно... но это происходит..

я стараюсь mktime() функция для создания строки секунд:

$time = mktime(21,0,0,3,29,2014);
echo date("d-M, h:i A", $time);

И затем я добавляю 21600 (6 часов) секунд в это..

 $newstr = $time+21600;
 echo  echo date("d-M, h:i A", $newstr);

Я ожидаю этот вывод:

29-Mar, 09:03 PM
30-Mar, 03:03 AM

Но я получаю это:

29-Mar, 09:03 PM
30-Mar, 04:03 AM      // It must be 03:03 AM

Кто-нибудь знает, в чем проблема..? Я использую xampp.

2 ответа

В качестве часового пояса выбран регион, для которого летнее время введено в действие 30 марта 2014 года, поэтому последняя дата заканчивается корректировкой на летнее время и на один час позже, чем вы ожидаете математически.

http://www.timeanddate.com/news/time/europe-starts-dst-2014.html

В этом можно убедиться, напечатав даты до и после с помощью маркера часового пояса. e и маркер DST I включен в dateмаска

Может быть, вы можете попробовать добавить эту строку перед вашим кодом

ini_set('date.timezone','UTC');
Другие вопросы по тегам