gpt4 book ai didi

PHP同步时区夏令时问题

转载 作者:行者123 更新时间:2023-11-29 09:05:06 26 4
gpt4 key购买 nike

我有一个将数据加载到 MySQL 表中的网站。表中的两个条目是“开始日期”和“结束日期”。 “startdate”是使用 CURRENT_TIMESTAMP 自动生成的。 “enddate”由用户使用日期选择器选择。

如果用户与服务器位于不同的时区,这会产生问题。例如(我在太平洋时区,服务器位于中部)。如果我在下午 5 点创建一个条目并选择晚上 10 点结束日期,它将作为晚上 7 点和晚上 10 点进入数据库,创建一个 3 小时而不是 5 小时的窗口。我想要的是将结束日期转换为中部时间(相同)作为服务器)。因此,以我的示例为例,我希望数据库中的条目为晚上 7 点和午夜 12 点。

我可以使用此 javascript 获取用户时区偏移量:

var d = new Date();
var timezone = -d.getTimezoneOffset()/60;

这将返回 -7(我现在处于 GMT-8,我假设 1 小时差异是因为夏令时)。我对解决方案的第一个想法是假设服务器处于 -5 状态,然后比较两者(回到我的示例,-5 - -7 = 2,因此将 2 添加到“结束日期”)。

当我们切换回标准时间时,问题就出现了。我假设我的 javascript 将开始返回 -8 而不是 -7,从而破坏我的功能。我知道 PHP 的 date_default_timezone_get(),但它返回一个字符串而不是数字。我想我需要的是一个类似的函数,它(对于中部时间)在夏令时返回 -5,在标准时间返回 -6。

最佳答案

使用 mysql 时间戳字段。

或者将所有数据保存在UTC中,然后在php中执行后面需要执行的操作。

关于PHP同步时区夏令时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7251452/

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