如何为不同的地点设置时区

  • 本文关键字:设置 时区 php timezone
  • 更新时间 :
  • 英文 :


我对设置时区感到非常困惑。我正在用PHP开发一个论坛,因为我不确定回复的显示时间。

以下是的情况

一个问题发布于2013年4月1日上午10:00(时区"亚洲/加尔各答"(。有人在2013年3月31日晚上11:30快速回复,因为回复者的时区是"美国/芝加哥",即-10.30小时。

我的问题是如何管理不同地点的时区?

在上面的例子中,向发布问题并得到回复的用户显示的时间应该是多少?

回答问题的用户应该显示什么时间?

我使用PHP的时间函数作为字符串在数据库中插入时间记录。为了显示时间,我使用了

date("d m Y h:m a", strtotime($time));

上面的代码$time是来自数据库的值。

谢谢。。

我会使用gmdate()将日期和时间存储到数据库中,使其基于GMT:

$d = gmdate('Y-m-d H:i:s');
// store $d into database

当你呈现页面时,你会考虑用户的时区偏好:

date_default_timezone_set('Asia/Singapore');
$ts = strtotime($date_from_db . ' GMT');
$date_on_page = date('Y-m-d H:i:s', $ts);

或者您可以让JavaScript处理时间转换。

更新

您还可以将UNIX时间戳存储在数据库中;就我个人而言,我喜欢有DATETIME列,因为当你试图调试一些东西时,这些列更容易解码:(

date_default_timezone_set('America/New_York'); 

该函数用于在php中使用默认时区。

这是教程的链接。

更改时区使用:

$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "n";
$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "n";

这是时区列表。

相关内容

  • 没有找到相关文章

最新更新