1 день в mktime = 0.958 дня

pugalo

Новичок
Чувствую, что жестко туплю, но все же, почему
PHP:
echo "\r\n" . (mktime(0, 0, 0, 3, 30, 2013) - mktime(0, 0, 0, 3, 29, 2013)) / 3600 / 24;
echo "\r\n" . (mktime(0, 0, 0, 3, 31, 2013) - mktime(0, 0, 0, 3, 30, 2013)) / 3600 / 24;
Но
PHP:
echo "\r\n" . (mktime(0, 0, 0, 4, 1, 2013) - mktime(0, 0, 0, 3, 31, 2013)) / 3600 / 24;
PHP Version 5.3.1
 

WMix

герр M:)ller
Партнер клуба
это понятно что часа нехватает (часики то в некоторых странах до сих пор переводят)
 

pugalo

Новичок
Блин, что самое обидное, даже
PHP:
(mktime(0, 0, 3600 * 24, 3, 31, 2013) - mktime(0, 0, 0, 3, 31, 2013)) / 3600 / 24 != 1
а равняется по прежнему 0.958333333333, что по моему является бредом, но за ответ спасибо большое, понял в какую сторону копать.
 

WMix

герр M:)ller
Партнер клуба
PHP:
echo "\r\n" . (mktime(0, 0, 0, 4, 1, 2013) - mktime(0, 0, 0, 3, 31, 2013)) / 3600 / 24;
echo "\r\n" . (mktime(0, 0, 0, 10, 29, 2012) - mktime(0, 0, 0, 10, 28, 2012)) / 3600 / 24;

date_default_timezone_set('Europe/Moscow');
echo "\r\n" . (mktime(0, 0, 0, 4, 1, 2013) - mktime(0, 0, 0, 3, 31, 2013)) / 3600 / 24;
echo "\r\n" . (mktime(0, 0, 0, 10, 29, 2012) - mktime(0, 0, 0, 10, 28, 2012)) / 3600 / 24;
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Это особенности современного обучения, ага. Учат сразу пхп без понимания как там эти мелкие кусочки кремния двигают байты.
http://php.net/manual/ru/language.types.float.php
Читать Большую Красную Табличку.
 

pugalo

Новичок
Это особенности современного обучения, ага.
Ответ мимо кассы. Выше был дан правильный ответ - проблема вызвана переводом с зимнего времени на летнее, разность времени составляет ровно час. Так что свой поучительный тон советую приберечь до времён, когда подтянешь свое собственное образование до подобающего ему уровня.
 
Сверху