MySQL now()改变时区

时间:2012-05-23 13:24:53

标签: php mysql timezone

我使用以下INSERT语句:

INSERT INTO messages SET `to` = '".$to."', `from` = '".$this->userid."', `title` = '".$title."', `message` = '".$message."', `created` = NOW()

但是,它使用我的服务器时间(America / Montreal)。我想要亚洲时区(亚洲/加尔各答)

这可以使用相同的查询吗?

4 个答案:

答案 0 :(得分:8)

您可能希望继续使用MySQL中的CONVERT_TZ()函数。它基于您的操作系统使用的Olson database

Here是文档。

答案 1 :(得分:7)

打开与MySQL的连接后,运行以下查询:

SET time_zone = timezone;

然后,您执行的所有功能都将针对该连接运行该时区(即,直到您关闭数据库的“链接”“。

如果您拥有相应的权限,则可以“永久”/全局锁定它。 Tiemzone字符串是你问题中的标准字符串。

http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

答案 2 :(得分:1)

最好直接在查询中使用SQL格式:

/^(\+)?[0-9\s]{1,30}$/

答案 3 :(得分:0)

$myDateTime = new DateTime('2012-05-23 17:01', new DateTimeZone('GMT'));
$myDateTime->setTimezone(new DateTimeZone('Asia/Kolkata'));
echo $myDateTime->format('Y-m-d H:i');

修改上述代码后,如所需的格式;您可以使用$myDateTime变量插入数据库。