php date与数据库不匹配?

This is the coding and it is echoing with the right format but the fact that the date is wrong when it prints out.

Output: 31 Dec 1969 19:33

Database Timestamp 2016-05-20 21:53:17

<?php  
date_default_timezone_set('ECT');
$timestamp = 1456778973;
echo date('d M Y H:i',$row['timestamp']);
?>

and i have tried doing the date in different ways and still the same result

In the code sample you posted, $row['timestamp'] has not been set, so the date is constructed with timestamp 0, also known as epoch, or the date that is being echoed.

If you change it as follows, it should work fine:

<?php  
date_default_timezone_set('ECT');
$timestamp = 1456778973;
echo date('d M Y H:i', $timestamp); ?>

Side note: Time zone ECT is not a valid time zone code in PHP. If I assume correctly that you mean european central time, you would have to specify CET instead.

ECT doesn't exist as a valid TimeZone, did you mean CET perhaps?
The correct way to do this is using the DateTime class, i.e.:

$date = new DateTime();
$date->setTimestamp(1456778973);
$tz = new DateTimeZone("America/Denver");
$date->setTimezone($tz);
echo $date->format('d M Y H:i');

PHPFiddle Demo


Note:

Dates should always be stored in DB as UTC (timestamp aka unix time), then you can add or subtract the timezone offset using the DateTime class.


Would you know what the offset would be for mountain standard time?

Mountain Time: America/Denver
Mountain Time (no DST): America/Phoenix

List of Supported Timezones