Задать вопрос

Почему в марте 2013 на один час меньше времени, чем в марте 2012 (PHP)?

Почему в марте 2013 года PHP показывает на один час меньше времени, чем в марте 2012?

Код для вычисления простой:

echo strtotime('2012-03-01') - strtotime('2012-03-31')


При этом результаты потрясают (показано по годам, подставлялся соответствующий год):

Март 2012 = 2588400 секунд

Март 2013 = 2592000 секунд

Март 2014 = 2588400 секунд

Март 2015 = 2588400 секунд

Март 2016 = 2588400 секунд

Март 2017 = 2588400 секунд

Март 2018 = 2588400 секунд

Март 2019 = 2592000 секунд

Как видно, такая же история повторяется в 2019 году. Конечно, тут не учитываются последние сутки, но все же, почему одни и те же 30 дней имеют разное количество секунд? Кто-нибудь знает, почему?
  • Вопрос задан
  • 4912 просмотров
Подписаться 5 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
PaulZi
@PaulZi
Дело в переводе летнего времени в последнее воскресение марта (которое у нас отменили).
strtotime конвертирует время в unixtimestamp соответственно то прибавляя 3600, то нет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@WEBIVAN
Вероятно, в выбранной временной локали в 2013 и 2019 года переход на летнее время попадает на март.
Ответ написан
WildZero
@WildZero
Лично у меня все норм. Для всех месяцев результат 259200. Что в принципе и правильно.
php 5.4.9
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽