我有一个日期返回作为MySQL查询的一部分在形式2010-09-17。

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

$Date = $Date + 1

$Date = $Date + 2

从而返回2010-09-18,2010-09-19,等等。

我试过了

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

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

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


当前回答

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

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

输出将是:

2015-11-22

解决方案已经从这里找到-如何在PHP中添加日期

其他回答

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

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

输出将是:

2015-11-22

解决方案已经从这里找到-如何在PHP中添加日期

您也可以使用以下格式

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

你可以这样堆叠更改:

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

注意这种方法与其他答案之间的区别:您可以将时间戳作为strtotime的第二个参数传入,而不是将值+1 day和<timestamp>连接起来。

从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');

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

都必须使用以下代码:

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

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

$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