gpt4 book ai didi

php - 将本地时间转换为 GMT

转载 作者:行者123 更新时间:2023-12-04 18:12:58 32 4
gpt4 key购买 nike

我有这些数据可供使用:

Timezone of local time as integer: 8.75 (which is UTC+8.75)
1) 2012-09-04 03:15:03
2) 2012-09-03 18:30:03 (GMT)
3) 1346728503
4) 1346697003 (GMT)

现在,我想知道如何将本地时间 (1) 转换为 GMT 一 (2)(反之亦然),同时考虑到夏季时间、1970-2038 时间限制等所有可能的异常(exception)情况?无论如何,它们重要吗?

PHP 函数主要不允许指定本地时间的时区来转换时间 - 它们采用服务器的本地时间,这不是我想要的(我也不想改变它)。 我显然可以减去 8.75*60*60来自 1346728503 (3) 但无论如何这会产生准确的值吗?

最佳答案

好的,首先:接受时间戳的 PHP 函数不接受时区,因为 UNIX 时间戳不知道也不关心时区。

当我输入时,时间是 2012 年 9 月 3 日星期一 15:30:10,在美国东部时区,目前正在遵守夏令时(“夏令时”)。在 UTC 时区中,这对应于 19:30:10。无论哪种方式,它都是 UNIX 时间戳(time_t 值)1,346,700,610。根据您在地球表面的位置,您当时的本地时间可能落在 26 小时范围内的任何时间,从 9 月 3 日上午 7:30:10 到 9 月 4 日上午 9:30:10 (2012-09- 03T07:30:10-12:00 至 2012-09-04T09:30:10+14:00)。但是无论您的本地标签是什么,对于 UNIX 和 PHP,时间问题仍然是 1,346,700,610。

看起来您试图计算不同的 time_t基于时区的值,但这不会计算。时区偏移永远不会应用于 time_t值,不会改变;它们仅适用于人类可读的表示。

如果可能,请不要尝试进行自己的时区转换。规则往往会改变。现在,对我来说,本地时间比 UTC 早四个小时;再过几个月,就会提前5个小时。此外,今年发生这种变化的规则与五年前不同。因此,根据我尝试转换的特定时间戳值,我必须应用不同的规则。

使用库函数。

将时间的字符串表示形式转换为 time_t值,使用 strtotime .如果字符串包含时区引用,strtotime将为您进行转换。如果没有,您可以使用 date_default_timezone_set ,正如 Connie 建议的那样,告诉 PHP 在解释字符串时使用哪个时区。

转换 time_t值返回一个字符串,使用 date 获取“本地”时间(即根据 date_default_timezone_set 设置的时区的时间;您可以使用 date_default_timezone_get 询问 PHP 该时区是什么),或 gmdate 获取UTC。

关于php - 将本地时间转换为 GMT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12253042/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com