【发布时间】:2011-12-02 13:09:17
【问题描述】:
我将仅在我的数据库中存储 UTC 时间,并希望使用 PHP 将时间戳转换为用户的本地时间。
我的问题是,将用户时区存储在数据库中的最佳方式是什么?
IE:-400、-4、-4:00
话虽如此,我知道如何手动计算:
$utc_time = strtotime("2011-10-02 23:00:00");
$my_time = $utc_time - 14400;
echo date($timeformat, $mytime);
我的问题是,从数据库中提取用户的时区后,我不知道是要增加还是减少秒数。这就是我遇到的问题,试图弄清楚如何保存时区以便我可以计算偏移量。
我可以将时区保存为“-14400”,但使用上面的示例,我不能只使用 - 号组合两个字符串来为我做数学运算:
$my_time = $utc_time.$timezone;
那么...如何正确保存时区以完成数学运算?
【问题讨论】:
-
你为什么不做这样的数学:$my_time = $utc_time - $timezone*3600;
-
那么如果我把它保存为TIME,那么数学是怎么做的呢?
-
@JoostvanDoorn- 我不知道是 + 还是 - ...这就是我要解决的问题。
-
数据类型可以是 VARCHAR -> 你可以用字符串做数学运算,因为它代表十进制、八进制、二进制或十六进制。
-
基本上,如果您将其存储为时区 UTC -1 = -1 那么您应该执行 $my_time = $utc_time + $timezone*3600;如上所述,您可以使用字符串进行计算。您在语句中实际所做的是创建一个包含“{UTC time}{your timezone}”的字符串,因为点 (.) 用于将两个字符串粘合在一起。