13

我正在使用以下 INSERT 语句:

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

但是,它使用我的服务器时间(美国/蒙特利尔)。我想要亚洲的时区 (Asia/Calcutta)

这可能与相同的查询?

4

4 回答 4

10

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

..`created` = CONVERT_TZ(NOW(),'SYSTEM','Asia/Calcutta')..
于 2018-02-26T10:12:54.997 回答
8

你会想要继续使用CONVERT_TZ()MySQL 中的函数。它基于您的操作系统使用的Olson 数据库。

是文档。

于 2012-05-23T13:27:19.847 回答
8

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

SET time_zone = timezone;

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

如果您拥有适当的权限,则可以“永久”/全局锁定它。Tiemzone 字符串是标准字符串,正如您在问题中所使用的那样。

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

于 2012-05-23T13:33:54.527 回答
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变量插入数据库。

于 2012-05-23T13:33:44.733 回答