在PHP中将天添加到$Date

在PHP中将天添加到$Date,php,date,Php,Date,我在mySQL查询中返回了一个日期,格式为2010-09-17 我想将变量$Date2设置为$Date5,如下所示: $Date2=$Date+1 $Date3=$Date+2 等等 所以它返回2010-09-18,2010-09-19等 我试过了 date('Y-m-d', strtotime($Date. ' + 1 day')) 但这给了我$date之前的日期 以“Y-m-d”格式获取日期的正确方法是什么,以便可以在其他查询中使用这些日期?如果您使用的是PHP 5.3,则可以使用对象及其

我在mySQL查询中返回了一个日期,格式为2010-09-17

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

$Date2=$Date+1

$Date3=$Date+2

等等

所以它返回2010-09-18,2010-09-19等

我试过了

date('Y-m-d', strtotime($Date. ' + 1 day'))
但这给了我$date之前的日期


以“Y-m-d”格式获取日期的正确方法是什么,以便可以在其他查询中使用这些日期?

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

查看手册页面,了解如何构建其他时段,将2天添加到日期中,3天添加到日期中,以此类推

如果没有PHP5.3,您应该能够像使用strotime一样使用strotime。我已经对它进行了测试,它可以在5.1.6和5.2.10中使用:

$Date1 = '2010-09-17';
$Date2 = date('Y-m-d', strtotime($Date1 . " + 1 day"));
// var_dump($Date2) returns "2010-09-18"
您所要做的就是使用天而不是像这样的天:

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

所有人都必须使用以下代码:

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

您还可以使用以下格式

strtotime("-3 days", time());
strtotime("+1 day", strtotime($date));
您可以通过以下方式堆叠更改:

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

请注意此方法与其他答案中的方法之间的差异:您可以将时间戳作为strotime的第二个参数传入,而不是将值+1 day和串联在一起。

下面是一个小片段来演示日期修改:

$date = date("Y-m-d");
//increment 2 days
$mod_date = strtotime($date."+ 2 days");
echo date("Y-m-d",$mod_date) . "\n";

//decrement 2 days
$mod_date = strtotime($date."- 2 days");
echo date("Y-m-d",$mod_date) . "\n";

//increment 1 month
$mod_date = strtotime($date."+ 1 months");
echo date("Y-m-d",$mod_date) . "\n";

//increment 1 year
$mod_date = strtotime($date."+ 1 years");
echo date("Y-m-d",$mod_date) . "\n";

将变量用于天数

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

在PHP 5.2中,您可以将modify与DateTime对象一起使用:


添加月份时要小心。。。在较小的程度上,这里有一个简单的方法来解决这个问题

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

解决方案已从这里找到-

这里是您查询的最简单解决方案

$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,"Y-m-d"); //set date format of the result

要向日期添加特定天数,请使用以下函数

function add_days_to_date($date1,$number_of_days){
    /*
    //$date1 is a string representing a date such as '2021-04-17 14:34:05'
    //$date1 =date('Y-m-d H:i:s'); 
    // function date without a secrod argument returns the current datetime as a string in the specified format
    */
    $str =' + '. $number_of_days. ' days';
    $date2= date('Y-m-d H:i:s', strtotime($date1. $str));
    return $date2; //$date2 is a string
}//[end function]

抱歉,Daniel,但是Web服务器运行的是PHP5.2.6,因此这不会workDateTime::Construction使用与StrotTime相同的机制来解析日期,因此您也可以使用新的DateTime+1天$date,这将不需要5.3。我无意对此进行否决,但不知怎的,我做了=/这是PHP5.5+的实际答案,它的输出可能会正确地重复使用just day。。。dateY-m-d,Strotime'2010-09-17+1天’->2010-09-18,dateY-m-d,Strotime'2010-09-17+2天’->2010-09-19刚刚尝试了这种方法,效果很好。我仍然不知道为什么我在开始日期前一天尝试时得到了一个值。如果我有一个de天数变量要添加怎么办?@Carlos echo dateY-m-d,strotime$date.+.$variable.'days';不,这个方法根本不起作用。它将返回2004年的某个日期。你不应该这样做,最终,你会在leap Second上遇到问题接受答案只给出15000天以上的答案,如果你再加25000天以上,这个答案就会给出答案。你也可以在DateTimeImmutable上查询这个问题,你会得到一个修改过的副本,而不会改变原件。你能看看我的相关问题吗?
<?php
   $date = "2015-11-17";
   echo date('Y-m-d', strtotime($date. ' + 5 days'));
?>
2015-11-22
$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,"Y-m-d"); //set date format of the result
function add_days_to_date($date1,$number_of_days){
    /*
    //$date1 is a string representing a date such as '2021-04-17 14:34:05'
    //$date1 =date('Y-m-d H:i:s'); 
    // function date without a secrod argument returns the current datetime as a string in the specified format
    */
    $str =' + '. $number_of_days. ' days';
    $date2= date('Y-m-d H:i:s', strtotime($date1. $str));
    return $date2; //$date2 is a string
}//[end function]