在PHP中添加$ Date日期

时间:2010-09-16 14:23:07

标签: php date

我有一个日期作为mySQL查询的一部分以2010-09-17

的形式返回

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

$Date2 = $Date + 1

$Date3 = $Date + 2

等。

以便它返回2010-09-182010-09-19等...

我试过了

date('Y-m-d', strtotime($Date. ' + 1 day'))

但是这给了我$Date之前的日期。

以“Y-m-d”格式获取我的日期的正确方法是什么,以便它们可以在另一个查询中使用?

10 个答案:

答案 0 :(得分:363)

您所要做的就是使用days而不是day,如下所示:

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

输出正确:

2010-09-18
2010-09-19

答案 1 :(得分:68)

如果您使用的是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('Y-m-d');

查看DateInterval constructor手册页,了解如何构建其他句点以添加到您的日期(2天为'P2D',3为'P3D',依此类推)。

如果没有PHP 5.3,您应该能够像{1}}那样使用它(我已经测试了它,它在5.1.6和5.2.10中都有效):

strtotime

答案 2 :(得分:22)

从PHP 5.2起,您可以对DateTime对象使用modify:

http://php.net/manual/en/datetime.modify.php

$Date1 = '2010-09-17';
$date = new DateTime($Date1);
$date->modify('+1 day');
$Date2 = $date->format('Y-m-d');

添加月份时要小心......(在较小程度上,几年)

答案 3 :(得分:17)

这是一个用于演示日期修改的小片段:

$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";

答案 4 :(得分:8)

您还可以使用以下格式

strtotime("-3 days", time());
strtotime("+1 day", strtotime($date));

您可以这样堆叠更改:

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

请注意此方法与其他答案中的方法之间的区别:您可以将时间戳作为+1 day的第二个参数传递,而不是连接值<timestamp>strtotime

答案 5 :(得分:4)

将变量用于天数

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

答案 6 :(得分:3)

以下是查询的最简单解决方案

$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

答案 7 :(得分:2)

这里有一个简单的方法来解决这个问题。

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

输出将是:

2015-11-22

从这里找到解决方案 - How to Add Days to Date in PHP

答案 8 :(得分:0)

所有必须使用以下代码:

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

答案 9 :(得分:0)

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

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]