I have date of this format March 3, 2011 in database and I need to extend it with 7 days. I mean
$date = $date + 7. Is there any build in function to do that ?
Another more recent and object style way to do it :
$date = new DateTime('now');
$date->add(new DateInterval('P7D'));
php doc of datetime add
echo date('d/m/Y', strtotime('+7 days'));
As noted in several blogs, strtotime() solves the "+1 month" ("next month") issue on days that do not exist in the subsequent month differently than other implementations like for example MySQL.
$dt = date("Y-m-d");
echo date( "Y-m-d", strtotime( "$dt +1 day" ) ); // PHP: 2009-03-04
echo date( "Y-m-d", strtotime( "2009-01-31 +2 month" ) ); // PHP: 2009-03-31
$date = "Mar 03, 2011";
$date = strtotime($date);
$date = strtotime("+7 day", $date);
echo date('M d, Y', $date);
I would solve this like that. First, I'd create an instance of your given datetime object. Then, I'd create another datetime object which is 7 days later than the initial one. And finally, I'd format it the way you like.
With meringue library, this is quite intuitive and elegant. Here's the code:
(new Future(
new FromCustomFormat('F j, Y', 'March 3, 2011'),
new NDays(7)
))
->value();
The result is a string in ISO8601 format. If you like, you can format it anyway you like using the same ISO8601 syntax:
(new ISO8601Formatted(
new Future(
new FromCustomFormat('F j, Y', 'March 3, 2011'),
new NDays(7)
),
'F j, Y'
))
->value();
The code above uses meringue library. Here's a quick start, you can take a look if you want.
onClose: function(selectedDate) {
$("#dpTodate").datepicker("option", "minDate", selectedDate);
var maxDate = new Date(selectedDate);
maxDate.setDate(maxDate.getDate() + 6); //6 days extra in from date
$("#dpTodate").datepicker("option", "maxDate", maxDate);
}