我正在尝试将 1355657846和1355677646 unix时间戳转换为 Y-M-D H:i:s格式。 问题出在H:i:s。它应该是 11:37:24和17:07:26 分别显示12:37:24和18:07:26。
<?php
echo date('Y-m-d H:i:s','1355657846');//2012-12-16 12:37:26,must be 11:37:26
echo date('Y-m-d H:i:s','1355677646');//2012-12-16 18:07:26,must be 17:07:26
?>
应该是11:37和17:07,因为我在unix timestamp conversion
中查看了它以及这是我在Gmail帐户中收到邮件的时间。我从gmail获得了这些unix时间戳(使用php imap函数... $ overview-&gt; udate)
我正在本地xampp服务器上测试它。 任何人都可以建议我在哪里出错吗?
PS:我检查了related question in stackoverflow,但在这里我想将时间戳转换为日期时间,我认为无论时区如何都应该保持不变。
答案 0 :(得分:0)
这可能是由于TimeZone设置造成的。了解PHP date_default_timezone_set()
并确保您的本地时区符合您真正想要的时区。所有Unix时间戳在世界范围内都是相同的。但是全球的本地DATETIME值各不相同。您可以看到这篇文章(希望如此):
最好的问候,〜雷
答案 1 :(得分:0)
它定义为本地Web服务器中的时区设置。
检查php.ini的date.timezone值。 它也可能被htaccess文件或PHP脚本覆盖。
答案 2 :(得分:0)
如果你想用好的时区来约会,有两种方法:
default_timezone_set('Europe/Paris');//for example
或:
$date = DateTime::createFromFormat('U',$timestamp,new DateTimezone('Europe/Paris'));
echo $date->format('Y-m-d H:i:s);
您可以找到更多信息here。