Вычтите одну секунду из заданного времени

Я хотел бы добавить 1 день, а затем вычесть (минус) 1 секунду с данного времени.

Я сделал:

$fromDate = date("Ymd", strtotime("2012-09-28")).' 00:00:00'; $date = strtotime(date("ymd H:m:s", strtotime($fromDate)) . " +1 day") - 1; $toDate = date('Ymd H:m:s', $date); echo $toDate; 

но вместо 2012-09-28 23:59:59 он возвращается 2012-09-29 00:09:59

Что я делаю не так?

Related of "Вычтите одну секунду из заданного времени"

Вы обойдетесь кругом, вместо того, чтобы приблизиться к вашему коду. Вот мое решение с объектами DateTime :

 $time = new DateTime("2012-09-28"); $time->modify("+1 day"); $time->modify("-1 second"); var_dump($time); 

Или, если вам просто нужна последняя секунда дня, почему бы не просто:

 $time = "2012-09-28"; $time .= " 23:59:59"; 

Поскольку маловероятно, что количество секунд / минут / часов в день изменится.

Если я понимаю вас правильно, вам просто нужна последняя секунда в данный день, верно?

Если это так, то вы можете просто иметь:

 $theDate = "2012-09-28"; $fromDate = $theDate." 00:00:00"; $toDate = $theDate." 23:59:59";