【问题标题】:Add hours to UTC dateTime将小时数添加到 UTC dateTime
【发布时间】:2014-01-02 12:11:54
【问题描述】:

我确信答案就在我面前,但我的 UTC 日期时间如下所示:

2014-01-02 04:02:58

我想做的只是增加几个小时。

如何在 PHP 中实现这一点?此外,如果我愿意,我将如何添加天数?

【问题讨论】:

    标签: php date datetime


    【解决方案1】:

    使用DateTime()。与date()/strtotime() 不同,它对时区和夏令时友好。

    // PHP 5.2+
    $dt = new DateTime('2014-01-02 04:02:58');
    $dt->modify('+2 hours');
    echo $dt->format('Y-m-d H:i:s');
    $dt->modify('+2 days');
    echo $dt->format('Y-m-d H:i:s');
    

    See it in action

    或者

    // PHP 5.3+
    $dt = new DateTime('2014-01-02 04:02:58');
    $dt->add(new DateInterval('PT2H'));
    echo $dt->format('Y-m-d H:i:s');
    $dt->add(new DateInterval('P2D'));
    echo $dt->format('Y-m-d H:i:s');
    

    See it in action

    或者

    // PHP 5.4+
    echo (new DateTime('2014-01-02 04:02:58'))->add(new DateInterval('PT2H'))->format('Y-m-d H:i:s');
    

    See it in action

    参考:

    【讨论】:

    • 并不是说这是错误的,但我正在使用 Laravel 并且由于某种原因我收到此代码错误。
    • 啊,这是因为它上面的 Blade 模板系统。如果你使用php标签,它会工作。
    【解决方案2】:

    你可以使用strtotime()试试这样:

    echo $new_time = date("Y-m-d H:i:s", strtotime( "2014-01-02 04:02:58".'+3 hours'));
    

    【讨论】:

    • @SuperScript 上面有一条线表示时区和夏令时友好
    猜你喜欢
    • 1970-01-01
    • 2013-07-01
    • 2016-10-22
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多