我已经检查了我的mysql系统时区与SELECT @@system_time_zone;
及其返回EDT
在生产服务器。现在我想生成相同的时区(即EDT)当前时间戳,这是不工作的。这是我目前为止所尝试的
date_default_timezone_set('EST');
$ts = strtotime('now');
echo date('Y-m-d H:i:s',$ts);
和
$date = new DateTime(null, new DateTimeZone('EST'));
$ts = $date->getTimestamp();
echo date('Y-m-d H:i:s',$ts);
它的输出是2015-09-07 05:38:43
,但我的mysql日期(时间戳)是2015-09-07 06:39:53
,所以它不一样。(插入同一时间进行测试)
所以我怎么能得到当前时间戳基于mysql的系统时区 (EDT/EST)??感谢专业人士的帮助
可以像这样检索全局和特定于客户端的时区的当前值:
mysql> SELECT @@global.time_zone, @@session.time_zone;
并尝试使用此代码设置时区和时区位置
<?php
$date = date_create('2000-01-01', timezone_open('Pacific/Nauru'));
echo date_format($date, 'Y-m-d H:i:sP') . "'n";
date_timezone_set($date, timezone_open('Pacific/Chatham'));
echo date_format($date, 'Y-m-d H:i:sP') . "'n";
?
注意第二个php代码只是一个例子。
希望对你有所帮助