Мне нужно добавить один день к дате, используя отметки времени. Следующий код должен работать, но это не так:
$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', как и следовало ожидать.
Я полностью застрял. Любая идея помочь?
Является ли система в Англии? Британское летнее время закончилось 26-м в 0100 году. Думаю, это может объяснить расхождение: во время BST время GMT + 1. Чтобы вернуться в GMT, вы поэтому вычитаете один час. 0100 становится 0000, эффективно делая 10/26 25 часов.
Довольно странно, попробуйте с этой инструкцией:
$new_date_timestamp = strtotime("+1 day", $date_timestamp);
Это можно легко выполнить с помощью strtotime:
$date = '2014-10-26';
$new_date = date("Y-m-d", strtotime("+ 1 day", strtotime($date)));
echo $new_date;