【问题标题】:subtract 6 hours from date('g:i a', strtotime($time_date_data));从日期中减去 6 小时('g:i a', strtotime($time_date_data));
【发布时间】:2011-11-21 15:23:20
【问题描述】:

我正在使用以下代码将通用时间代码转换为更用户友好的代码。

$meeting_time = date('g:i a', strtotime($time_date_data));

但现在我需要从 meeting_time 中减去 6 小时。我应该在上面的代码之后执行它还是可以将它用于相同的日期函数?

类似:

$meeting_time = date('g:i a' - 6, strtotime($time_date_data));

【问题讨论】:

    标签: php date


    【解决方案1】:
    $meeting_time = date('g:i a', strtotime($time_date_data) - 60 * 60 * 6);
    

    String-to-time (strtotime) 返回一个以秒为单位的 Unix 时间戳(自 Epoch 起),因此您可以简单地减去 21600 秒,然后再将其转换回指定的日期格式。

    【讨论】:

    • 感谢您的解释。 +1 已选中。
    【解决方案2】:

    OO PHP之道:

    $date = new DateTime(); // current time
    echo 'Current: '. $date->format('Y-m-d H:i:s') . "\n";
    $date->sub(new DateInterval('PT3H55M10S'));
    echo $date->format('Y-m-d H:i:s') . "\n";
    

    减去 6 小时:

    $date = new DateTime('2017-01-20'); // pass $time_date_data to here
    $date->sub(new DateInterval('PT6H'));
    

    【讨论】:

      【解决方案3】:

      另一种方法:

      $meeting_time = date('g:i a', strtotime('-6 hours', strtotime($time_date_data)));
      

      【讨论】:

        【解决方案4】:

        试试这个:

        // 6 hours, 3600 seconds in an hour
        $meeting_time = date('g:i a', strtotime($time_date_data) - 6 * 3600);
        

        【讨论】:

        • 这个答案对我来说时间计算更准确。谢谢你 mc10。
        【解决方案5】:

        你应该可以这样做:

        $meeting_time = date('g:i a', strtotime($time_date_data));
        date_add($meeting_time, - date_interval_create_from_date_string('6 hours'));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-26
          • 1970-01-01
          • 2015-05-13
          • 1970-01-01
          • 2012-08-03
          • 1970-01-01
          相关资源
          最近更新 更多