PHP mktime具有夏令时和其他变量

时间:2012-01-14 03:37:07

标签: php timezone dst

我使用mktime()存储我数据库中所有内容的所有日期,并且我有一个脚本经过并返回设定时间的日期,这可以很好地显示事情发布的时间,但是当我尝试返回确切的日期/时间时,它会提前一小时返回,所以我想知道如何在任何夏令时或其他任何事情发生变化的时候总是返回正确的日期。

这基本上是我使用的(减少只显示它的一小部分):

function time_stamp($session_time) 
{ 
    date_default_timezone_set("EST");

    $time_difference = time() - $session_time; 

    $seconds = $time_difference; 
    $minutes = round($time_difference / 60 );
    $hours = round($time_difference / 3600 ); 
    $days = round($time_difference / 86400 ); 
    $weeks = round($time_difference / 604800 ); 
    $months = round($time_difference / 2419200 ); 
    $years = round($time_difference / 29030400 );

    // Seconds
    if($seconds==0)
    {
         return $seconds." second ago";     //See this works fine, obviously
    }
        else if($seconds <=60&&$seconds>0)
    {
        return date('F jS \a\t g:ia ', $session_time+60*60); //it's when i use date()
                                                             //it doesn't
    }

1 个答案:

答案 0 :(得分:2)

简单的解决方案......

在php.ini文件中添加以下一行:

date.timezone = "America/New_York"

完成此操作后,无需:

date_default_timezone_set("EST");

使用以下功能:

time();

或者

date();

应该不是问题。