将日期功能设置为正确的时区

时间:2016-10-28 13:52:39

标签: php function date time

我有一个日期函数,它将DATE TIME列输出到更易读的阅读时间方法,例如今天9:51。但是,我的日期正在读取的时区是我的服务器所在的时区,即美国的CST。有没有办法让它读取EST?甚至可以显示任何区域的正确时间?

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 $strDate . " " . $strTime;
    }
}

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您可以将配置文件或功能中的时区设置为:

date_default_timezone_set('America/Toronto'); //whatever timezone you have

猜猜你会:

date_default_timezone_set('America/New_York');

答案 2 :(得分:0)

您可以使用AJAX执行此操作。此代码将自动检测时区并根据客户所在国家/地区显示当前时间。

将其添加到您的主页面。 <div id="currentTime"></div>用于显示当前时间。

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js">
</script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jstimezonedetect/1.0.4/jstz.min.js">
</script>
<script type="text/javascript">
  $(document).ready(function(){
    var zoneDetect = jstz.determine(); 
    var timezone = zoneDetect.name(); 
    $.get("cookie_set.php", {timezone: timezone}, function(result){
        $('#currentTime').html(result);
    });
  });
</script>

<div id="currentTime"></div>

创建另一个页面time_set.php。并添加以下代码。此页面用于检索时间。

<?php
date_default_timezone_set($_GET['timezone']);
function fixDate($strDateTime) {
    return $strDateTime;
}
echo fixDate(date('Y-m-d h:i:s'));
?>