在PHP中添加$ Date的日子

我有一个date返回作为一个MySQL的查询2010-09-17forms的一部分

我想将variables$ Date2设置为$ Date5,如下所示:

$Date2 = $Date + 1

$Date3 = $Date + 2

等等..

所以它返回2010-09-19等…

我努力了

 date('Ym-d', strtotime($Date. ' + 1 day')) 

但是这给了我$Date之前的$Date

什么是正确的方式来获取我的date格式forms'YMD',以便他们可以在另一个查询中使用?

所有你需要做的是使用days而不是像这样的day

 <?php $Date = "2010-09-17"; echo date('Ym-d', strtotime($Date. ' + 1 days')); echo date('Ym-d', strtotime($Date. ' + 2 days')); ?> 

它输出正确:

 2010-09-18 2010-09-19 

如果您使用PHP 5.3,则可以使用DateTime对象及其add方法:

 $Date1 = '2010-09-17'; $date = new DateTime($Date1); $date->add(new DateInterval('P1D')); // P1D means a period of 1 day $Date2 = $date->format('Ym-d'); 

看看DateInterval构造函数手册页,看看如何构build其他时期来添加到你的date(2天将是'P2D' ,3将是'P3D' ,等等)。

如果没有PHP 5.3,你应该可以像你一样使用strtotime (我已经testing过了,它可以在5.1.6和5.2.10中使用):

 $Date1 = '2010-09-17'; $Date2 = date('Ym-d', strtotime($Date1 . " + 1 day")); // var_dump($Date2) returns "2010-09-18" 

这是一个小的片段来演示date修改:

 $date = date("Ymd"); //increment 2 days $mod_date = strtotime($date."+ 2 days"); echo date("Ymd",$mod_date) . "\n"; //decrement 2 days $mod_date = strtotime($date."- 2 days"); echo date("Ymd",$mod_date) . "\n"; //increment 1 month $mod_date = strtotime($date."+ 1 months"); echo date("Ymd",$mod_date) . "\n"; //increment 1 year $mod_date = strtotime($date."+ 1 years"); echo date("Ymd",$mod_date) . "\n"; 

从PHP 5.2开始,您可以使用DateTime对象进行修改:

http://php.net/manual/en/datetime.modify.php

 $Date1 = '2010-09-17'; $date = new DateTime($Date1); $date->modify('+1 day'); $Date2 = $date->format('Ym-d'); 

添加月份时要小心…(以及更小的年限)

您也可以使用以下格式

 strtotime("-3 days", time()); strtotime("+1 day", strtotime($date)); 

您可以按照以下方式堆叠更改:

 strtotime("+1 day", strtotime("+1 year", strtotime($date))); 

请注意这种方法和其他答案中的区别:不是连接值+1 day <timestamp> ,而是将时间戳作为strtotime的第二个参数传入。

使用variables的天数

 $myDate = "2014-01-16"; $nDays = 16; $newDate = strtotime($myDate . '+ '.$nDays.'days'); echo newDate('d/m/Y', $soma); //format new date 

这里有一个简单的方法来解决这个问题。

 <?php $date = "2015-11-17"; echo date('Ym-d', strtotime($date. ' + 5 days')); ?> 

输出将是:

 2015-11-22 

解决scheme从这里find – 如何在PHP中添加date

这是查询的最简单的解决scheme

 $date=date_create("2013-03-15");\\or your date string date_add($date,date_interval_create_from_date_string("40 days"));\\add number of days echo date_format($date,"Ymd");\\set date format of the result 

所有必须使用波纹pipe的代码:

 $nday = time() + ( 24 * 60 * 60); echo 'Now: '. date('Ym-d') ."\n"; echo 'Next Day: '. date('Ym-d', $nday) ."\n";