如何在PHP中获取具有特定时间的下一个日期

如何在PHP中获取具有特定时间的下一个日期,php,datetime,Php,Datetime,我想在PHP中获得带有特定日期和时间的日期,就像我想要第二天的日期和上午9:30的时间,即“2011-06-02 09:30:00”。 我用来做这件事的代码 <?php $next_day_date = date("Y")."-".date("m")."-".(date("d")+1)." 09:30:00"; $new_trig_time_stamp = strtotime($next_day_date); $trigger_date_time = date("Y-m

我想在PHP中获得带有特定日期和时间的日期,就像我想要第二天的日期和上午9:30的时间,即“2011-06-02 09:30:00”。 我用来做这件事的代码

<?php
   $next_day_date = date("Y")."-".date("m")."-".(date("d")+1)."  09:30:00";
   $new_trig_time_stamp = strtotime($next_day_date);
   $trigger_date_time = date("Y-m-d H:i:s",$new_trig_time_stamp);
   echo $trigger_date_time;
?>

上述代码工作正常,但在31天失败,31日返回“1970-01-01 05:30:00”。
有没有其他方法可以做到这一点。

通过unix时间戳计算它-麻烦少多了

<?php
   $trigger_date_time = date("Y-m-d 09:30:00",time() + 60*60*24);
   echo $trigger_date_time;
?>

看一看

更详细地说,类似于

$myDate = new DateTime("Some time");
$myDate->add(new DateInterval("P1D"));
然后可以使用
$myDate->format(…)
提取格式化表示。

strotime()
在这里非常有用

$trigger_date_time = date( "Y-m-d H:i:s", strtotime( "tomorrow 9:30" ) );

按固定数字移动日期时,最好使用
mktime()
,因为它可以很好地处理无效日期(例如,它知道1月32日实际上是2月1日)


是的,它在5月31日试过了。它起作用了。。。谢谢在我的例子中,strotime()造成了问题。当时钟因DST而移动时,这种手动秒调整的解决方案将失败(每年一次,它将给出1小时太迟,1小时太早)。如果解决方案的精度是以天为单位,则小时无关紧要,我必须猜测,我会说这是因为代码没有提供任何解释。为什么其他人会投反对票?(我想每个人都是在同一时间得到的)
echo date('Y-m-d', strtotime('+1 day')) . ' 09:30:30';
$trigger_date_time = date("Y-m-d H:i:s", mktime(9,30,0, date('n'), date('j')+1, date('Y'));