这是编码,它以正确的格式呼应,但事实是打印出来的日期是错误的。
输出: 31 Dec 1969 19:33
数据库时间戳 2016-05-20 21:53:17
<?php
date_default_timezone_set('ECT');
$timestamp = 1456778973;
echo date('d M Y H:i',$row['timestamp']);
?>
我尝试以不同的方式进行约会,但结果仍然相同
在您发布的代码示例中,尚未设置$row['timestamp']
,因此日期是使用时间戳 0(也称为 epoch)或正在回显的日期构造的。
如果按如下方式更改它,它应该可以正常工作:
<?php
date_default_timezone_set('ECT');
$timestamp = 1456778973;
echo date('d M Y H:i', $timestamp); ?>
旁注:时区ECT
在 PHP 中不是有效的时区代码。如果我正确地假设你的意思是欧洲中部时间,你将不得不指定CET
。
ECT
不作为有效的TimeZone
存在,你的意思是CET
也许?
执行此操作的正确方法是使用 DateTime 类,即:
$date = new DateTime();
$date->setTimestamp(1456778973);
$tz = new DateTimeZone("America/Denver");
$date->setTimezone($tz);
echo $date->format('d M Y H:i');
<小时 />PHPFiddle 演示
<小时 />注意:
日期应始终作为UTC
(时间戳又名 unix 时间)存储在数据库中,然后您可以使用 DateTime
类添加或减去时区偏移量。
你知道山地标准时间的偏移量是多少吗?
山区时间: America/Denver
山区时间(无夏令时):America/Phoenix
支持的时区列表