在PHP中如何增加$Date的天数
P粉741678385
2023-08-20 15:57:20
[PHP讨论组]
<p>我有一个作为MySQL查询的一部分返回的日期,格式为<code>2010-09-17</code>。</p>
<p>我想要将变量$Date2至$Date5设置如下:</p>
<p><code>$Date2 = $Date + 1</code></p>
<p><code>$Date3 = $Date + 2</code></p>
<p>等等,这样返回<code>2010-09-18</code>,<code>2010-09-19</code>,等等。</p>
<p>我尝试过</p>
<pre class="brush:php;toolbar:false;">date('Y-m-d', strtotime($Date. ' + 1 day'))</pre>
<p>但这给我返回的是<em>在</em><code>$Date</code>之前的日期。</p>
<p>有什么正确的方法可以以'Y-m-d'格式获取我的日期,以便它们可以在另一个查询中使用?</p>
如果您使用的是PHP 5.3,您可以使用
DateTime对象及其add方法:$Date1 = '2010-09-17'; $date = new DateTime($Date1); $date->add(new DateInterval('P1D')); // P1D表示1天的时间段 $Date2 = $date->format('Y-m-d');请参阅
DateInterval构造函数手册页面,了解如何构造其他时间段以添加到您的日期(例如2天为'P2D',3天为'P3D'等)。如果没有PHP 5.3,您应该可以像之前那样使用
strtotime(我已经测试过,在5.1.6和5.2.10中都有效):$Date1 = '2010-09-17'; $Date2 = date('Y-m-d', strtotime($Date1 . " + 1 day")); // var_dump($Date2)返回"2010-09-18"你只需要像这样使用
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')); ?>它会正确输出: