在PHP中添加$ Date的日子
我有一个date返回作为一个MySQL的查询2010-09-17
forms的一部分
我想将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";