我知道这个问题已经被问过了。但我想不清楚该怎么处理这件事。我已经读了一些关于如何处理它的文章。我的问题是我有一个网站,处理会议/日程安排,但该网站的用户可能来自其他国家,这是我的大问题,因为他们有不同的时区。
情况是这样的。
我创建了明天的会议,并将时间设置为下午3点(考虑到我在新加坡)。我的客户将在法国,所以他将在网站上看到的时间应该是上午9点。
我是怎么想到这个的?
谢谢大家的帮助。
我是这样做的。
-
您在php脚本中设置的默认时区,它由您决定。
-
然后,为了用户的显示目的,确定用户的时区。您使用javascript完成此操作,因为您希望从客户端获取信息。
纯javascripthttps://stackoverflow.com/a/1091399/525445
jQueryhttps://stackoverflow.com/a/5607444/525445
(或者甚至-结合这两种方法-使用纯javascript获取时区,然后将该值存储在会话变量中,就像在jquery示例中一样)
3。现在您的php脚本知道了用户的时区,您可以使用它将默认时区转换为他们拥有的任何时间,使用以下命令:
https://stackoverflow.com/a/2505687/525445PHP包含一个DateTime对象,可用于跨时区转换。
我建议将数据库中的所有时间戳存储在同一个时区(或者如果不可能,那么将时区与时间戳一起保存)。当您需要显示时间戳时,请从数据库中提取时间戳,然后将其转换为用户的本地时区。
$date = new DateTime('2000-01-01', new DateTimeZone('UTC'));
echo $date->format('Y-m-d H:i:s'); // save this one to your database
// Output: 2000-01-01 00:00:00
$date->setTimezone(new DateTimeZone('Australia/Adelaide'));
echo $date->format('Y-m-d H:i:s'); // Serve this one to the user
// Output: 2000-01-01 09:30:00
下面是PHP支持的完整时区列表
试试这个:
date_default_timezone_set("Asia/kolkata");
$date= date("Y-m-d H:i:s");