Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Increase current date by 5 days

Tags:

date

php

$date = date('Y-m-d',current_time('timestamp', 0));

How do I change $date to $date + 5 days?

PHP version is 5.2.

This code doesn't work:

$date_cur = date('Y-m-d',current_time('timestamp', 0));
echo $date_cur . ' <br>';
$date_cur_plus = date($date_cur, strtotime('+5 days'));
echo $date_cur_plus;

Gives me:

2011-11-29 
2011-11-29
like image 419
Jasper Avatar asked Nov 29 '11 08:11

Jasper


People also ask

How to add 2 days to new date() in java?

Adding Days to the given Date using Calendar class Add the given date to the calendar by using setTime() method of calendar class. Use the add() method of the calendar class to add days to the date. The add method() takes two parameter, i.e., calendar field and amount of time that needs to be added.

How to add day in java?

use DateUtils. addDays(date,3); from org.

How can I get current date and time?

The Clock. systemUTC(). instant() method returns the current date and time both.

How can I get plus date in PHP?

The date_add() function adds some days, months, years, hours, minutes, and seconds to a date.


8 Answers

You could use mktime() using the timestamp.

Something like:

$date = date('Y-m-d', mktime(0, 0, 0, date('m'), date('d') + 5, date('Y')));

Using strtotime() is faster, but my method still works and is flexible in the event that you need to make lots of modifications. Plus, strtotime() can't handle ambiguous dates.

Edit

If you have to add 5 days to an already existing date string in the format YYYY-MM-DD, then you could split it into an array and use those parts with mktime().

$parts = explode('-', $date);
$datePlusFive = date(
    'Y-m-d', 
    mktime(0, 0, 0, $parts[1], $parts[2] + 5, $parts[0])
    //              ^ Month    ^ Day + 5      ^ Year
);
like image 85
Yes Barry Avatar answered Oct 04 '22 00:10

Yes Barry


Object oriented Style:

<?php
    $date = new DateTime('now');
    $date->add(new DateInterval('P5D'));
    echo $date->format('Y-m-d') . "\n";
?>

Procedural Style:

<?php
    $date = date_create('2016-01-01');
    date_add($date, date_interval_create_from_date_string('5 days'));
    echo date_format($date, 'Y-m-d');
?>
like image 40
Turdaliev Nursultan Avatar answered Oct 04 '22 00:10

Turdaliev Nursultan


$date = date('Y-m-d', strtotime('+5 days'));
like image 40
matino Avatar answered Oct 04 '22 01:10

matino


Use strtotime:

$date = date('Y-m-d', strtotime('+5 days'));
like image 39
phihag Avatar answered Oct 04 '22 01:10

phihag


$dateplus5 = date('Y-m-d', strtotime('+5 days'));
like image 26
Francis Avila Avatar answered Oct 04 '22 01:10

Francis Avila


For specific date:

$date = '2011-11-01';
$date_plus = date('Y-m-d', strtotime($date.'+5 days'));
echo $date.'<br>'.$date_plus;

It will be give :

2011-11-01
2011-11-06
like image 32
Irfan Hafid Nugroho Avatar answered Oct 04 '22 02:10

Irfan Hafid Nugroho


You can use

strtotime(“+5 days”)

to get the current date plus 5 days or

$targetDate = date($date, strtotime(’+5 days’));
like image 35
Taz Avatar answered Oct 04 '22 01:10

Taz


strtotime() is very nice. It allows you to do the following:

$startDate = 'now'; // or choose a certain date you want/have
$startDate = '2013-02-14';
$intervals = array(
    '', 
    '+ 5 days', 
    '+ 31 days', 
    '+ 3 months', 
    '+ 2 years + 2 days'
); 
foreach($intervals as $interval) {
    $combinedDate = $startDate . ' ' . $interval;
    var_dump($combinedDate . ' => ' date('Y-m-d', strtotime($combinedDate)));
}

with a result:

now => 1360334498 = 2013-02-08

now + 5 days => 1360766498 = 2013-02-13

now + 31 days => 1363012898 = 2013-03-11

now + 3 months => 1368020498 = 2013-05-08

now + 2 years + 2 days => 1423579298 = 2015-02-10

or:

2013-02-14 => 1360792800 = 2013-02-14

2013-02-14 + 5 days => 1361224800 = 2013-02-19

2013-02-14 + 31 days => 1363471200 = 2013-03-17

2013-02-14 + 3 months => 1368478800 = 2013-05-14

2013-02-14 + 2 years + 2 days => 1424037600 = 2015-02-16

like image 29
temuraru Avatar answered Oct 04 '22 01:10

temuraru