阅读错误时区的日期

时间:2015-08-21 20:07:26

标签: php date datetime

我有以下日期功能:

function fixDate($strDateTime) {
 $strFormat = 'M, j, Y';
    $strFormatTime = '\a\t g:ia';
    $intTimeStamp = strtotime($strDateTime);
    $strDate = date($strFormat, $intTimeStamp);
    $strTime = date($strFormatTime, $intTimeStamp);

    if($strDate == date($strFormat)) {
        return "Today " . $strTime;
    }
    elseif($strDate == date($strFormat, strtotime('yesterday'))) {
        return "Yesterday " . $strTime;
    }
    else {
        return " on " . $strDate . " " . $strTime;
    }
}

我不确定这是我的日期函数导致这个或我的数据库结构的方式,但我的页面上的日期是在它应该是PM时读取AM。它也在阅读美国 - 中部时间,当我需要美国 - 东部时间。我将日期存储在phpmyadmin中作为日期类别。

如何更改日期以便显示为美国 - 东部时间?

2 个答案:

答案 0 :(得分:1)

我始终将默认时区设为GMT

biblia:bible

然后将GMT渲染到“视图”图层中的本地时区。当地时区是一个很难处理的问题,尤其是夏令时。 : - )

# store all data internally as GMT:

#   local tz 1 \
#   local tz 2  + <-> webservice.php <-> gmt tz
#   local tz 2 /

date_default_timezone_set('Zulu');
if( ! defined( 'DATE_FORMAT' ) ) define ('DATE_FORMAT', 'Y-m-d H:i:s');

答案 1 :(得分:0)

尝试改变,

function fixDate($strDateTime) {
$strFormat = 'M, j, Y';

function fixDate($strDateTime) {
$strFormat = 'M, j, Y';
date_default_timezone_set('America/New_York');