Дата и метки времени ведут себя странно в PHP при добавлении дня

0

Мне нужно добавить один день к дате, используя отметки времени. Следующий код должен работать, но это не так:

$date = '2014-10-26';
$date_timestamp = strtotime($date);                // Converting the date to timestamp
$new_date_timestamp = $date_timestamp + 24*60*60;  // Adding one day
$new_date = date("Y-m-d",$new_date_timestamp);     // Formating the new date

Он возвращает $ new_date = '2014-10-26' вместо 2014-10-27.

Как ни странно, это хорошо работает для других дат. Например, если $ date = '2014-10-28', то он возвращает $ new_date = '2014-10-29', как и следовало ожидать.

Я полностью застрял. Любая идея помочь?

Теги:
date

3 ответа

0
Лучший ответ

Является ли система в Англии? Британское летнее время закончилось 26-м в 0100 году. Думаю, это может объяснить расхождение: во время BST время GMT + 1. Чтобы вернуться в GMT, вы поэтому вычитаете один час. 0100 становится 0000, эффективно делая 10/26 25 часов.

  • 0
    Я живу во Франции. Это может быть причиной! Удивительно!
0

Довольно странно, попробуйте с этой инструкцией:

$new_date_timestamp = strtotime("+1 day", $date_timestamp); 
0

Это можно легко выполнить с помощью strtotime:

$date     = '2014-10-26';
$new_date = date("Y-m-d", strtotime("+ 1 day", strtotime($date)));
echo $new_date;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню