我有一个日期以2010-09-17
的形式作为mySQL查询的一部分返回
我想将变量$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‘格式的日期的正确方法是什么,以便它们可以在另一个查询中使用?
发布于 2010-09-16 22:46:42
您所要做的就是使用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
发布于 2010-09-16 22:26:18
如果您使用的是PHP5.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'
,依此类推)。
没有PHP5.3,你应该能够像以前那样使用strtotime
(我已经测试过了,它在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"
发布于 2015-01-29 02:25:28
从PHP5.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');
添加月份时要小心...(在较小的程度上,还有年份)
https://stackoverflow.com/questions/3727615
复制相似问题