mysql的时间戳和本地的time()不一样


timestamp in mysql and time() different locally

我正在本地开发一个网站,当用户在网站上注册时,当前日期和时间存储在TIMESTAMP列中,但如果我在我的php脚本中做time(),时间比时间戳列晚2小时!

因此,例如我在30分钟前注册了,数据库列中的时间是08/31/2016 18:23:12,并且在我的php脚本中,如果我现在回显time(),我得到08/31/2016 16:51:22(当变成可读的日期格式时)。我期待得到08/31/2016 18:51:22

既然是同一个本地服务器,为什么时间不同?我不关心这个特殊问题的时区,我只希望mysql时间戳和php time()是相同的"区域"。

这通常是因为您需要为PHP脚本设置时区。

下面是一个例子:

<?php
// This is some Asian timezone, so your time() function will match this timezone
date_default_timezone_set("Asia/Bangkok");
?>

我的建议是使用<?php $timestamp = time(); ?>,只是使用MySQL插入和插入到你的数据库,而不是使用MySQL时间戳类型。

使用此函数设置您的时区,您可以在http://www.php.net/manual/en/timezones.php查看所有时区

希望这有帮助!!