ian ian - 28 days ago 5
PHP Question

adding one day to a date

My code to add one day to a date returns a date before day adding:
2009-09-30 20:24:00 date after adding one day SHOULD be rolled over to the next month: 1970-01-01 17:33:29

<?php

//add day to date test for month roll over

$stop_date = date('Y-m-d H:i:s', strtotime("2009-09-30 20:24:00"));

echo 'date before day adding: '.$stop_date;

$stop_date = date('Y-m-d H:i:s', strtotime('+1 day', $stop_date));

echo ' date after adding one day. SHOULD be rolled over to the next month: '.$stop_date;
?>


I've used pretty similar code before, what am I doing wrong here?

Answer
<?php
$stop_date = '2009-09-30 20:24:00';
echo 'date before day adding: ' . $stop_date; 
$stop_date = date('Y-m-d H:i:s', strtotime($stop_date . ' +1 day'));
echo 'date after adding 1 day: ' . $stop_date;
?>

For PHP 5.2.0+, you may also do as follows:

$stop_date = new DateTime('2009-09-30 20:24:00');
echo 'date before day adding: ' . $stop_date->format('Y-m-d H:i:s'); 
$stop_date->modify('+1 day');
echo 'date after adding 1 day: ' . $stop_date->format('Y-m-d H:i:s');
Comments