$date = date('Y-m-d',current_time('timestamp', 0));
如何将$date
更改为$date + 5 days
?
PHP版本为5.2。
此代码不起作用:
$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;
给我:
2011-11-29
2011-11-29
答案 0 :(得分:26)
$date = date('Y-m-d', strtotime('+5 days'));
答案 1 :(得分:16)
您可以使用mktime()
使用时间戳。
类似的东西:
$date = date('Y-m-d', mktime(0, 0, 0, date('m'), date('d') + 5, date('Y')));
使用strtotime()
更快,但我的方法仍然有效,并且在您需要进行大量修改时非常灵活。另外,strtotime()
无法处理模棱两可的日期。
修改强>
如果您必须以YYYY-MM-DD
格式向现有日期字符串添加5天,则可以将其拆分为数组,并将这些部分与mktime()
一起使用。
$parts = explode('-', $date);
$datePlusFive = date(
'Y-m-d',
mktime(0, 0, 0, $parts[1], $parts[2] + 5, $parts[0])
// ^ Month ^ Day + 5 ^ Year
);
答案 2 :(得分:4)
面向对象的风格:
<?php
$date = new DateTime('now');
$date->add(new DateInterval('P5D'));
echo $date->format('Y-m-d') . "\n";
?>
程序风格:
<?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');
?>
答案 3 :(得分:2)
使用strtotime
:
$date = date('Y-m-d', strtotime('+5 days'));
答案 4 :(得分:2)
$dateplus5 = date('Y-m-d', strtotime('+5 days'));
答案 5 :(得分:2)
您可以使用
strtotime(“+5 days”)
获取当前日期加5天或
$targetDate = date($date, strtotime(’+5 days’));
答案 6 :(得分:2)
strtotime()
非常好。它允许您执行以下操作:
$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)));
}
结果:
now =&gt; 1360334498 = 2013-02-08
现在+ 5天=&gt; 1360766498 = 2013-02-13
现在+ 31天=&gt; 1363012898 = 2013-03-11
现在+ 3个月=&gt; 1368020498 = 2013-05-08
现在+ 2年+ 2天=&gt; 1423579298 = 2015-02-10
或:
2013-02-14 =&gt; 1360792800 = 2013-02-14
2013-02-14 + 5天=&gt; 1361224800 = 2013-02-19
2013-02-14 + 31天=&gt; 1363471200 = 2013-03-17
2013-02-14 + 3个月=&gt; 1368478800 = 2013-05-14
2013-02-14 + 2年+ 2天=&gt; 1424037600 = 2015-02-16
答案 7 :(得分:2)
特定日期:
$date = '2011-11-01';
$date_plus = date('Y-m-d', strtotime($date.'+5 days'));
echo $date.'<br>'.$date_plus;
它将给出:
2011-11-01
2011-11-06
答案 8 :(得分:0)
我用过这个:
$date = strtotime("+1 day", strtotime("2007-02-28"));
echo date("Y-m-d", $date);
现在正在运作。
答案 9 :(得分:0)
不应该是这样的吗?
$date_cur = date('Y-m-d', current_time('timestamp', 0));
echo $date_cur . ' <br>';
$date_cur_plus = date('Y-m-d', strtotime('+5 days', current_time('timestamp', 0) ) );
echo $date_cur_plus;
答案 10 :(得分:0)
如果日期已经存在,您可以使用以下代码:
$tartDate = date("m/d/Y", strtotime("+1 Day", strtotime($Date)));