Question

i'm trying to add days to a date with the 'Y-m-d' format:

$oldDate = '2013-05-15';
$newDate = date('Y-m-d', strtotime($oldDate. " + 5 days"));

This ouputs '2013-5-20', but below:

$oldDate = '2013-05-15';
$addedDays = 5;
$newDate = date('Y-m-d', strtotime($oldDate. " + $addedDays days"));

doesn't work, it only outputs '1970-01-01', which doesn't make sense because i only tried to put the days to be added in a variable. They're basically the same code. I appreciate the help trying to understand this. Thanks!

Was it helpful?

Solution

However the code is right and works, just in case try

$newDate = date('Y-m-d', strtotime($oldDate. " + {$addedDays} days"));

OTHER TIPS

Use the DateTime class. It will spare you a lot of head-ache.

// Create a DateTime object
$date = new DateTime('2013-05-15');

// Original date
echo $date->format('d. F Y'), '<br>';

// Add 5 days
$date->modify('+5 days');

// Modified date
echo $date->format('d. F Y'), '<br>';

I had checked it, but it doesn't work on my computer (likely due to the PHP version). I found an alternative solution, though:

$timeBase = time();

$sDays2change = '+182'; // 6 months

$newtime = strtotime($sDays2change . ' day', $timeBase);

echo date('d/m/Y', $newtime);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top