【问题标题】:remove 5 hours from the time从时间中删除 5 小时
【发布时间】:2009-04-20 09:56:00
【问题描述】:

我正在使用 strtotime 从一些复杂的 XML 创建时间戳,但时区不正确。

如何从时间中删除 5 小时?

【问题讨论】:

    标签: php datetime strtotime


    【解决方案1】:

    如果你知道时区,你可以用date_default_timezone_set()设置它

    设置好后,您可以在 strtotime() 中执行此操作。

    strtotime("-5 hours", $time);
    

    【讨论】:

    • 快速打字机 .. 比我快 23 秒 :))
    【解决方案2】:

    你可能想要这样的东西:

    date('Y-m-d H:i:s', time() - 18000);
    

    这会将字符串格式化为日期和时间,表示自纪元以来的当前时间(以秒为单位) - 18000 秒(五个小时)。您可以调整要减去的数字来调整调整的小时数。如果把 18000 写成 (60*60*5) 可能会更清楚。

    strtotime() 对于排序与美国不同的字符串可能会产生意想不到的后果。欧洲符号 (01/02/2009) 将被解读为 1 月 2 日,而它的意思是 2 月 1 日。这是我在 olafur 的解决方案中看到的唯一问题,除了它是可靠的,但是这个或那个都可以。

    【讨论】:

    • 我在挑剔,但 18000 是一个“幻数”,所以你需要添加 $five_hours = 5 * 60 * 60;然后把它放在你的代码中。
    • 我确实特别提到将其写为 (60*60*5) 而不是 18,000 会更清楚。除了代码示例之外,您甚至还阅读了我给出的答案吗?
    • 这种方法比strtotime更可靠。如果您只是删除小时,在某些情况下分钟将重置为 0...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多