PHP mktime с переходом на летнее время и другими переменными - PullRequest
0 голосов
/ 14 января 2012

Я использую 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 Ответ

2 голосов
/ 14 января 2012

Простое решение ...

Добавьте эту строку в ваш файл php.ini:

date.timezone = "America/New_York"

После этого нет необходимости:

date_default_timezone_set("EST");

И используя такие функции, как:

time();

Или

date();

Не должно быть проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...