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

时间:2011-06-01 11:02:55

标签: 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-d H:i:s",$new_trig_time_stamp);
   echo $trigger_date_time;
?>

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

5 个答案:

答案 0 :(得分:6)

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

$trigger_date_time = date("Y-m-d H:i:s", mktime(9,30,0, date('n'), date('j')+1, date('Y'));

答案 1 :(得分:2)

strtotime()在这里非常有用。

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

答案 2 :(得分:1)

通过unix时间戳计算它 - 更不用说烦恼了

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

答案 3 :(得分:0)

查看date_add

更详细地说,像......

$myDate = new DateTime("Some time");
$myDate->add(new DateInterval("P1D"));

然后,您可以使用$myDate->format(…)提取格式化的表示。

答案 4 :(得分:0)

echo date('Y-m-d', strtotime('+1 day')) . ' 09:30:30';