MySQL 现在() 更改时区



我正在使用以下 INSERT 语句:

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

但是,它使用我的服务器时间(美国/蒙特利尔(。我要亚洲时区(亚洲/加尔各答(

使用相同的查询可以做到这一点吗?

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

..`created` = CONVERT_TZ(NOW(),'SYSTEM','Asia/Calcutta')..

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

这是文档。

打开与 MySQL 的连接后,将以下内容作为查询运行:

SET time_zone = timezone;

然后,您执行的所有功能都将在该时区为该连接运行(即直到您关闭指向数据库的"链接"。

如果您有适当的权限,则可以将其"永久"/全局锁定。Tiemzone字符串是标准字符串,就像您在问题中一样。

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

$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变量插入到数据库中。

相关内容

  • 没有找到相关文章