MySQL EST时间戳文件,显示php中1小时的差异

MySQL EST时间戳文件,显示php中1小时的差异,php,mysql,Php,Mysql,当我在mysql中运行此SELECT DATE\u格式(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:

当我在mysql中运行此
SELECT DATE\u格式(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上午。所以这两次相差1小时。这里怎么了?我如何才能在PHP中获得与mysql相同的
NOW()

您正在将时区设置为
EST
——这是东部标准时间,全年都是UTC-5。如果您确实想要“东部时间”,请使用
美国/纽约
作为您的时区标识符。这将在适当的时间在美国东部标准时间和美国东部标准时间之间变化


我强烈建议尽可能避免使用缩写,因为它们甚至不是唯一的(例如,BST=英国标准时间和英国夏季时间),会造成很多混乱。基本上,它们通常表示一个特定的UTC偏移量。这与时区不同,时区表示UTC偏移量随时间的变化。

将时区更改为
date\u default\u timezone\u set(“美国/纽约”)