【问题标题】:PHP Add Hour to beginning of day [duplicate]PHP将小时添加到一天的开始[重复]
【发布时间】:2017-10-31 02:16:13
【问题描述】:

给定一个日期和一个小时,我想将该小时附加到该日期。

例如:给定小时 3 和日期 2017-05-30 我想要:2017-05-30 03:00:00

<?php

$d1 = date('Y-m-d');
$hour = 3;
$new_time = date("Y-m-d H:i:s", strtotime('+' . $hour .' hours', $d1));
echo $new_time;

?>

运行以下代码时,我得到:

注意:在 $new_time = 遇到格式不正确的数值 date("Y-m-d H:i:s...

我怎样才能得到正确的输出?

【问题讨论】:

  • 您想要从现在开始 3 小时,还是只想要那个日期的 03:00:00

标签: php


【解决方案1】:

用 + 小时尝试 strtotime(),如下所示:

<?php
    $d1 = date('Y-m-d');
    $new_time = date("Y-m-d H:i:s", strtotime($d1."+ 3 hour")); //here you can change the hour according to your need as now it is + 3
    echo $new_time;

【讨论】:

  • "@Apparently Im user2212428" - 我想你明白了 ;-)
  • 是的,我注意到你在你给出的所有答案中都标记了 OP(不仅仅是这个)。你不必那样做。已经暗示 Stackoverflow 上的答案是对问题的反应。
  • @Loko 可能是他的“签名” 哈哈
  • @Loko 是的,这是我的签名人
  • @Fred-ii- 没错,在这种情况下,答案的介绍毫无意义。
【解决方案2】:

您可以使用Datetime并添加DateInterval

$now = new DateTime(); //current date/time
$now->add(new DateInterval("PT3H"));
$new_time = $now->format('Y-m-d H:i:s');
echo $new_time;

DateInterval 接收一个字符串作为参数,如果您想了解有关格式化间隔的方式的更多信息,请查看here

【讨论】:

    【解决方案3】:

    您可以通过strtotime($time) + $yourtimeinseconds;简单地添加您需要添加的时间

    这是Eval Link

    代码:

    <?php
    $time = date("Y-m-d H:i:s");
    $hour = 3*60*60; // To Seconds
    $time = strtotime($time) + $hour; // Add 1 hour
    $time = date('Y-m-d H:i:s', $time); 
    echo $time;
    

    【讨论】:

      【解决方案4】:

      如果您希望从当前时间开始 3 小时,则所有其他答案都适用。如果您只想要凌晨 3 点,那么只需附加时间,无需数学。

      $time = date('Y-m-d 03:00:00');
      

      【讨论】:

        猜你喜欢
        • 2018-05-19
        • 2019-10-09
        • 2013-10-24
        • 2014-05-24
        • 1970-01-01
        • 1970-01-01
        • 2017-04-15
        • 1970-01-01
        • 2021-06-16
        相关资源
        最近更新 更多