提交的MySQL EST时间戳显示1小时差异

时间:2015-09-08 05:57:32

标签: php mysql

当我在mysql中运行此SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %r')时,显示2015-09-08 01:47:06 AM。我的MySQL系统时区是EDT。但是,当我在PHP 中同时运行

<?php 
date_default_timezone_set('EST');
echo date('Y-m-d h:i:s A');
//also tested :output 2015-09-08 00:47:06 AM
//echo date('Y-m-d H:i:s A');
?>

显示2015-09-08 12:47:06 AM。所以它这两个时间之间有1小时的差异。这里有什么不对?如何在PHP中与mysql NOW()相同?

1 个答案:

答案 0 :(得分:2)

您将时区设置为EST - 即东部标准时间,全年为UTC-5。如果您确实需要&#34;东部时间&#34;,请使用America/New_York作为您的时区标识符。这将在适当的时间在EST和EDT之间变化。

我强烈建议尽量避免使用缩写 - 它们甚至不是唯一的(BST =英国标准时间和英国夏令时,作为一个例子),并引起很多混乱。基本上它们通常代表一个特定的UTC偏移。这与时区不同,时区表示UTC偏移量随时间的变化情况。