我想将天数添加到当前日期:我正在使用以下代码:
$i=30;
echo $date = strtotime(date("Y-m-d", strtotime($date)) . " +".$i."days");
但是我没有得到正确的日期,而是得到了: 2592000
请提出建议。
[php] [date] add
在搜索框中。您会找到许多类似问题的答案。
我想将天数添加到当前日期:我正在使用以下代码:
$i=30;
echo $date = strtotime(date("Y-m-d", strtotime($date)) . " +".$i."days");
但是我没有得到正确的日期,而是得到了: 2592000
请提出建议。
[php] [date] add
在搜索框中。您会找到许多类似问题的答案。
Answers:
这应该是
echo date('Y-m-d', strtotime("+30 days"));
strtotime
期望得到一个包含美国英语日期格式的字符串,并将尝试将该格式解析为Unix时间戳(自1970年1月1日00:00:00 UTC以来的秒数),相对于现在给出的时间戳,或者当前时间(如果未提供)。
而 date
返回一个字符串,该字符串使用给定的整数时间戳或给定的时间字符串(如果未提供时间戳)根据给定的格式字符串格式化。
参见手册页
及其功能签名。
strtotime
将考虑配置的时区的任何夏令时。仅当您执行以下操作时,DST才是问题:stackoverflow.com/questions/4066035
这个可能很好
function addDayswithdate($date,$days){
$date = strtotime("+".$days." days", strtotime($date));
return date("Y-m-d", $date);
}
$date = new DateTime();
$date->modify('+1 week');
print $date->format('Y-m-d H:i:s');
要么 print date('Y-m-d H:i:s', mktime(date("H"), date("i"), date("s"), date("m"), date("d") + 7, date("Y"));
请记住,由于仅采用夏令时,时钟的变化可能会在仅计算日期时给您带来一些问题。
这是一个小的php函数,它可以解决这个问题:
function add_days($date, $days) {
$timeStamp = strtotime(date('Y-m-d',$date));
$timeStamp+= 24 * 60 * 60 * $days;
// ...clock change....
if (date("I",$timeStamp) != date("I",$date)) {
if (date("I",$date)=="1") {
// summer to winter, add an hour
$timeStamp+= 60 * 60;
} else {
// summer to winter, deduct an hour
$timeStamp-= 60 * 60;
} // if
} // if
$cur_dat = mktime(0, 0, 0,
date("n", $timeStamp),
date("j", $timeStamp),
date("Y", $timeStamp)
);
return $cur_dat;
}
您可以通过操纵时间码或使用strtotime()来实现。这是使用strtotime的示例。
$ data ['created'] = date('Ymd H:i:s',strtotime(“ + 1周”));
您可以使用PHP内置的DateTime类。它具有一种称为“ add”的方法,其用法已在手册中进行了充分说明: http //www.php.net/manual/en/datetime.add.php
但是,它需要PHP 5.3.0。
$date = "04/28/2013 07:30:00";
$dates = explode(" ",$date);
$date = strtotime($dates[0]);
$date = strtotime("+6 days", $date);
echo date('m/d/Y', $date)." ".$dates[1];
//add the two day
$date = "**2-4-2016**"; //stored into date to variable
echo date("d-m-Y",strtotime($date.**' +2 days'**));
//print output
**4-4-2016**
使用此addDate()函数可添加或减去天,月或年(您还将需要辅助函数ReformatDate())
/**
* $date self explanatory
* $diff the difference to add or subtract: e.g. '2 days' or '-1 month'
* $format the format for $date
**/
function addDate($date = '', $diff = '', $format = "d/m/Y") {
if (empty($date) || empty($diff))
return false;
$formatedDate = reformatDate($date, $format, $to_format = 'Y-m-d H:i:s');
$newdate = strtotime($diff, strtotime($formatedDate));
return date($format, $newdate);
}
//Aux function
function reformatDate($date, $from_format = 'd/m/Y', $to_format = 'Y-m-d') {
$date_aux = date_create_from_format($from_format, $date);
return date_format($date_aux,$to_format);
}
注意:仅适用于PHP> = 5.3
//Set time zone
date_default_timezone_set("asia/kolkata");
$pastdate='2016-07-20';
$addYear=1;
$addMonth=3;
$addWeek=2;
$addDays=5;
$newdate=date('Y-m-d', strtotime($pastdate.' +'.$addYear.' years +'.$addMonth. ' months +'.$addWeek.' weeks +'.$addDays.' days'));
echo $newdate;
即使这是一个古老的问题,但这种方法仍会在很多情况下使用,并且似乎很可靠。您需要PHP 5.3.0或更高版本。
$EndDateTime = DateTime::createFromFormat('d/m/Y', "16/07/2017");
$EndDateTime->modify('+6 days');
echo $EndDateTime->format('d/m/Y');
您可以为日期字符串使用任何类型的格式,这将起作用。