【问题标题】:strange timezone issue EDT/EST奇怪的时区问题 EDT/EST
【发布时间】:2015-09-07 10:43:33
【问题描述】:

我用SELECT @@system_time_zone; 检查了我的mysql 系统时区,并在生产服务器中返回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)?来自专业人士的任何帮助

【问题讨论】:

  • 您是否尝试过使用EST5EDT 而不仅仅是EST
  • @ESG 检查,没有发生任何事情。结果相同

标签: php mysql datetime


【解决方案1】:

全球和客户特定时区的当前值可以这样检索:

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代码只是一个例子。

希望对你有帮助

【讨论】:

  • 我需要基于 mysql 时区而不是格式化日期的时间戳。我已经显示了格式化的日期,以便意识到那些不一样
猜你喜欢
  • 2019-04-09
  • 2019-04-25
  • 2014-05-18
  • 1970-01-01
  • 1970-01-01
  • 2011-01-06
  • 1970-01-01
  • 2011-10-25
  • 2022-06-27
相关资源
最近更新 更多