php 将当前日期增加 5 天
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/8307963/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Increase current date by 5 days
提问by Jasper
$date = date('Y-m-d',current_time('timestamp', 0));
How do I change $date
to $date + 5 days
?
我如何更改$date
为$date + 5 days
?
PHP version is 5.2.
PHP 版本是 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
回答by matino
$date = date('Y-m-d', strtotime('+5 days'));
回答by Yes Barry
You could use mktime()
using the timestamp.
您可以使用mktime()
时间戳。
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.
使用strtotime()
速度更快,但我的方法仍然有效,并且在您需要进行大量修改时很灵活。另外,strtotime()
无法处理不明确的日期。
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()
.
如果您必须向格式中现有的日期字符串添加 5 天YYYY-MM-DD
,那么您可以将其拆分为一个数组并将这些部分与mktime()
.
$parts = explode('-', $date);
$datePlusFive = date(
'Y-m-d',
mktime(0, 0, 0, $parts[1], $parts[2] + 5, $parts[0])
// ^ Month ^ Day + 5 ^ Year
);
回答by Turdaliev Nursultan
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');
?>
回答by temuraru
strtotime()
is very nice. It allows you to do the following:
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)));
}
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
现在 => 1360334498 = 2013-02-08
现在 + 5 天 => 1360766498 = 2013-02-13
现在 + 31 天 => 1363012898 = 2013-03-11
现在 + 3 个月 => 1368020498 = 2013-05-08
现在 + 2 年 + 2 天 => 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
2013-02-14 => 1360792800 = 2013-02-14
2013-02-14 + 5 天 => 1361224800 = 2013-02-19
2013-02-14 + 31 天 => 1363471200 = 2013-03-17
2013-02-14 + 3 个月 => 1368478800 = 2013-05-14
2013-02-14 + 2 年 + 2 天 => 1424037600 = 2015-02-16
回答by Francis Avila
$dateplus5 = date('Y-m-d', strtotime('+5 days'));
回答by Taz
You can use
您可以使用
strtotime(“+5 days”)
to get the current date plus 5 days or
获取当前日期加上 5 天或
$targetDate = date($date, strtotime('+5 days'));
回答by Irfan Hafid Nugroho
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
回答by bharati bane
I used this:
我用过这个:
$date = strtotime("+1 day", strtotime("2007-02-28"));
echo date("Y-m-d", $date);
It's working now.
它现在正在工作。
回答by Lafif Astahdziq
Did not supposed to be like this?
不应该是这样吗?
$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;