Итоги конкурса

26.09.2012

Итак конкурс завершился и теперь я с радостью объявляю победителя. Наиболее точный ответ предоставила Юлия Фомина. Она дала пояснения почему такая проблема возникает и определить погрешность, а так же вариант решения.

Теперь ответ программиста: Исходная проблема заключалась в настройках date.timezone которая предполагала переход на зимнее и летнее время, в результате чего интервал менялся от -1 до +1 час. При чём эта проблема возникает только при конвертировании даты через mktime, при работе функции date таких проблем не возникает. Связанно это с тем, что mktime возвращает именно число секунд с эры Unix, то есть без учёта часового пояса, в свою очередь date использует часовые пояса и по этому проблем с конвертацией даты не возникает.
Вариантов решения проблемы 3:
- использовать для обработки функцию gmmktime()
- простое округление round() приведёт значение в нужную сторону
- перед вычислением дат можно задать date.timezone через ini_set которая не предполагает перехода на зимне-летнее время.


Возврат к списку