mysql NOW()返回托管服务器国家日期和时间,但想要获得印度标准时间[重复]

Posted

技术标签:

【中文标题】mysql NOW()返回托管服务器国家日期和时间,但想要获得印度标准时间[重复]【英文标题】:mysql NOW() return hosting server country date & time, but want to get Indian standard time [duplicate] 【发布时间】:2016-06-26 11:06:41 【问题描述】:

我的 web 应用程序和 mysql 数据库托管在美国服务器上,所以当我想存储当前日期和时间时,它存储在 美国时间,因为我使用 NOW() mysql 的功能,但我想将当前日期时间存储在印度标准时间。在mysql或php中怎么可能?实现这一目标的有效方法是什么?

【问题讨论】:

***.com/questions/930900/… 但我无法在共享主机中更改 mysql 服务器时区 您可以在 SESSION 而不是 GLOBAL 中更改 【参考方案1】:

有几种可能。

1) 将 mysql ini 设置 time-zone 更改为“IST”

2) 您可以使用tz_convert()转换时区

使用类似的方法将日期从一个时区转换为另一个时区

SELECT CONVERT_TZ(Now(),'GMT','IST');

为此,您必须有一个有效的时区配置,有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.0/en/time-zone-support.html

如果时区设置不正确,您仍然可以将Now() 转换为您的本地时区,如果您指定了服务器时区的时间偏移量和您想要的时区,例如

SELECT CONVERT_TZ(Now(),'+00:00','+08:00');

3) 如果您的 mysql 用户拥有super 权限,您可以简单地在运行时使用

设置时区
SET time_zone = 'IST';

更多文档可以在mysqlhttp://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html的时区手册部分找到

【讨论】:

实际上这对我有帮助 CONVERT_TZ(NOW(),'-07:00','+05:30') 很高兴听到您找到了解决方案。如果您觉得我的回答解决了您的问题,如果您接受它作为有效答案会很好,请参阅***.com/help/accepted-answer【参考方案2】:

为什么不使用 PHP 日期和 timeZone 函数来获取当前的印度时间戳

date_default_timezone_set("亚洲/加尔各答");

$curr_timestamp = date("Y-m-d H:i:s");

对不起,如果我弄错了,但如果这对你有用,请告诉我。

【讨论】:

嗨,这对你有帮助吗? 您的答案工作正常,但如果网站有很多其他国家/地区的用户,那么我们能做什么?我们应该为所有用户国家/地区写所有date_default_timezone_set('.....');

以上是关于mysql NOW()返回托管服务器国家日期和时间,但想要获得印度标准时间[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在mysql中,我用now获得的日期时间,和当前系统的时间不一样。日期一样

MySql Date函数

MySQL中SYSDATE()和NOW()函数的区别和联系

如何在不同的时区处理MYSQL NOW()?

MySQL:Curdate() 与 Now()

mysql 内置函数