【发布时间】:2013-07-21 18:43:06
【问题描述】:
我正在制作一个小 twitter 克隆只是为了学习,我遇到了一个问题,在 和 允许用户选择他们所在的时区之前,显示他们何时发推文的时间某些事情是错误的。
这是我的代码的 sn-ps:
/* current date/time whenever they send a tweet */
$time = date('Y-m-d H:i:s');
/* Insert into db as `time` */
/* Time retrieved as $value['time'] & users timezone as $_SESSION['timezone'] */
/* Convert to users timezone */
$users_timezone = new DateTimeZone($_SESSION['timezone']);
$date = new DateTime($value['time']);
$date->setTimeZone($users_timezone);
$new_date = $date->format('M j, o g:i a e');
echo $new_date;
洛杉矶地区目前是上午 11:32,但转换后显示为下午 6:26
我的默认设置是在柏林,目前是晚上 8:33,但在转换之前它显示的是凌晨 1 点
谁能告诉我这方面的见解?第一次这样做。
【问题讨论】:
-
$_SESSION['timezone']的值是多少?此外,您实际上并没有将时间作为VARCHAR存储到数据库中吗?您可能应该将其存储为DATETIME,并且应该使用 UTC。
标签: php mysql date datetime timezone