我正在创建这篇文章,以获得确认,我正确理解过程,并获得有关解决问题的一些小细节的反馈后期时间显示并正确存储在不同时区的用户。PHP显示存储的时间数据,并存储时间数据,同时考虑不同的时区
存储
第一步是获得用户时区作为GMT使用JavaScript函数偏移格式,并将其存储在一个会话变量的时间。例如,$ timezone变量将存储GMT -4
$timezone=$_SESSION['time'];
接下来,一旦我有我的用户时区。当用户发布帖子时,我将发布时间存储在mysql数据库中,我需要将其存储为UTC格式。我该怎么做呢?目前当我存储时间数据。它是以下列方式。我的邮票字段是日期时间格式,如果可能,我想离开它。
INSERT INTO posts (stamp) VALUES (now())
我用什么函数代替now()来获取UTC格式,然后将其插入到我的数据库中?我假设我需要使用一个php函数,它将使用$ timezone生成UTC日期。
显示时间
接下来,一旦UTC日期存储在数据库中。我需要根据我们设置的$ timezone变量向用户显示数据。
所以,当我显示时间,我目前做
echo date('F d', strtotime($list1['stamp']));
一旦我有存储的数据作为UTC时间,这将显示UTC时间,但我需要显示UTC的偏移用户自己时区,所以我需要使用$ timezone将UTC时间的$list['stamp']
转换为用户时区。我为此使用了什么功能?
tl:dr 这应该是我需要做的工作。让我知道你是否看到任何建议,或者我还没有考虑过的项目,以及如果你知道我需要使用什么函数将时间转换为UTC以存储在数据库中,以及使用什么函数来转换UTC时间使用$ timezone变量显示用户。
不是一个正确的答案,但我发现DateTime类和它的setTimezone方法在过去很有用。 – Corbin
非常感谢,我会考虑一下。 – arboles