0

正在开发一个用户以“11/28/2012 11:34 am”格式输入日期时间的模块。

然后我使用 strtotime 将其转换为时间戳并将其保存到我的数据库中。

然后,我使用以下日期(DateTime,'DM jS g:i A')在我的模板中向用户显示它。

问题是与创建事件的用户不在同一时区的用户没有更新正确的时间以反映他们的时区。

我可以访问用户发布和用户查看的时区偏移量。

我的问题是我应该如何补偿时区差异?

4

1 回答 1

1

将字符串转换为实际时区时,使用提交值的用户的时区覆盖服务器时区:http: //us3.php.net/manual/en/function.date-default-timezone-set.php

稍后检索它时,使用相同的函数将服务器时区覆盖为当前用户的时区(适合用户当前显示日期时间的时区)。

还要确保将其正确存储在数据库中:最好在 PHP 中使用 Unix 时间戳,在数据库中使用 TIMESTAMP 列,在保存到数据库时使用 FROM_UNIXTIME() 数据库函数,在从数据库中检索时使用 UNIX_TIMESTAMP()(所有这些都对 MySql RDBMS 有效,请检查您自己的 DBMS(如果不同)。

于 2012-11-28T17:32:11.997 回答