Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 计算两个时间域之间的差异_Php_Mysql_Datetime_Timestamp - Fatal编程技术网

Php 计算两个时间域之间的差异

Php 计算两个时间域之间的差异,php,mysql,datetime,timestamp,Php,Mysql,Datetime,Timestamp,您好,我正在使用第三方API显示我们站点中的提要,因为我在db表中有名为opentime和closetime的字段。feed表每20秒更新一次。一切正常,现在问题出在opentime和closetime上。从我的服务器的当前时间算起,未来有3个小时的时间(可能是他们的服务器时间)。例如,如果我的服务器当前时间是上午8:00,则在提要表更新时,opentime为上午11:00(从现在起3小时,有时会有所变化)。我们无法对feed表进行任何更改,因为该表通过API调用自动更新 所以我想找出这两者之间

您好,我正在使用第三方API显示我们站点中的提要,因为我在db表中有名为
opentime
closetime
的字段。
feed
表每20秒更新一次。一切正常,现在问题出在
opentime
closetime
上。从我的服务器的当前时间算起,未来有3个小时的时间(可能是他们的服务器时间)。例如,如果我的服务器当前时间是上午8:00,则在提要表更新时,
opentime
为上午11:00(从现在起3小时,有时会有所变化)。我们无法对
feed
表进行任何更改,因为该表通过API调用自动更新

所以我想找出这两者之间的时间差(
opentime-currenttime
),如何才能将
opentime
转换为我的服务器时间

我在
我的sql
查询中尝试了以下代码

TIMESTAMPADD(MINUTE,-180,FROM_UNIXTIME(opendate) // subtracting 3 hours(180 min) from the opendate.
还有别的办法吗


提前感谢您的指导。

您可以更改MySQL的默认时区。这可以设置为MySQL服务器的默认设置,也可以在每次连接时动态设置。大概是这样的:

set timezone='your timezone';

设置mysql配置的时区

set timezone='your timezone';
试试看

SELECT TIMESTAMPDIFF(MINUTE,'2012-10-21', NOW()) as diff;
diff=1997

请原谅我的提问,但是如果你想计算出两次之间的时差,那么你处理的时区真的重要吗?@NickBarrett-我们不知道他们使用的是哪个时区,但我们使用的是IST。我可能错了,但我认为MySQL DateTime函数不会直接在该字段上工作,因为他存储的是Unix时间戳,而不是MySQL时间值。