我使用DATETIME
作为列类型并使用NOW()
进行插入。当它打印出来时,落后三个小时。我能做什么才能提前三个小时到美国东部时间?
我使用php日期格式化我页面上的DATETIME
。
答案 0 :(得分:3)
如果使用NOW()存储在数据库中的日期不正确,则需要change your MySQL server settings to the correct timezone。如果打印后它只是不正确,则需要modify your php script to use the correct timezone。
编辑:
有关如何使用日期()格式化日期的信息,请参阅W3schools' convenient php date overview。
编辑2:
要么让GoDaddy更改设置(可疑),要么在插入表格时添加3小时。在表格中设置日期时,请参阅MySQL date add function修改日期。像date_add(now(),间隔3小时)这样的东西应该可以工作。
您的确切问题描述为here。
答案 1 :(得分:0)
让gmdate()和gmmktime()看一看。如果您使用GMT,我发现时间戳算法更容易,特别是如果您的代码在多台机器上运行,或者修改MySQL服务器设置不是一种选择,或者您最终处理不同的时区,节省日光等。
答案 2 :(得分:0)
我建议在UTC时区插入日期。这将为您节省很多麻烦(夏令时问题等......)
"INSERT INTO abc_table (registrationtime) VALUES (UTC_TIMESTAMP())"
当我查询我的数据时,我使用以下PHP脚本
<? while($row = mysql_fetch_array($registration)){
$dt_obj = new DateTime($row['message_sent_timestamp']." UTC");
$dt_obj->setTimezone(new DateTimeZone('Europe/Istanbul'));
echo $formatted_date_long=date_format($dt_obj, 'Y-m-d H:i:s'); } ?>
您可以将datetimezone值替换为此处可用的php timezones之一: