【发布时间】:2012-10-16 23:36:46
【问题描述】:
我有一个网站,用户(在不同的时区)可以在数据库中创建新记录,我目前记录的每条记录都带有创建时间的时间戳...我在 EST 时区,但是当我查看我在网站上创建的记录时,它们以 MST 显示时间,这也恰好是服务器时区...当我查看数据库中的记录时,时间戳字段未转换为 UTC,它改为转换为 mst ......我注意到当我从 phpmyadmin 插入记录时,我使用 datepicker 并选择 18:35:01,但是当我在插入后查看记录时,它显示 15:35 :01!!!这非常令人沮丧,我一直在阅读时间戳字段应该自动转换为 utc,而我没有这样做......另一件事是,我目前正在使用日期函数来格式化时间戳,它显示在 00- 00-00 00:00:00 格式,这给了我一段时间的错误,所以我开始使用 strtotime,这可能是问题的一部分……我不确定……当记录插入数据库时,我是使用 null 作为值,因此它将自动使用当前本地时间......但问题是,来自不同时区的不同人将创建记录而不是查看它们的人......所以我需要适应所有这些......关于我做错了什么有什么建议吗?
【问题讨论】:
-
我将我所有的东西都存储为 epoch 并使用 javascript 在用户当地时间显示。据我所知,php无法自动判断用户所在的时区。
-
如何将其存储为纪元?
-
我会将其保存为 int 吗?还是我仍将其存储为时间戳?
-
我把它存储为一个int,但它现在只能到2038年!
-
2038 目前不是问题,非常感谢!你知道我在哪里可以找到如何找出用户时区并使用 javascript 进行转换吗?
标签: php mysql phpmyadmin timestamp localtime