PHP 日期与数据库不匹配



这是编码,它以正确的格式呼应,但事实是打印出来的日期是错误的。

输出: 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

支持的时区列表

最新更新