2

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

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

4

2 回答 2

9

如果您知道时区,则可以使用date_default_timezone_set()

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

strtotime("-5 hours", $time);
于 2009-04-20T09:58:34.257 回答
3

你可能想要这样的东西:

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

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

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

于 2009-04-20T10:03:35.447 回答