2012-01-14 6 views
0

私はデータベース内のすべての日付をすべて格納するためにmktime()を使用していますが、設定された時間だけ日付を返すスクリプトがあります。どれくらい前に物事が投稿されたのですが、正確な日付/時間を返そうとすると1時間前に戻りますので、日にちが変わると正しい日付が返されるようにする方法が不思議です貯蓄や何か。ここでPHP 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 
    } 

答えて

2

シンプルなソリューション...

は、php.iniファイルにこの1行を追加します。

date_default_timezone_set("EST"); 
date.timezone = "America/New_York" 

これを実行した後、する必要はありません

などの機能を使用して:

time(); 

それとも

date(); 

することは問題にはなりません。

+0

世界中で正しい時間を得るための簡単な解決策があるかどうか知っていますか?これを行うには、複数のスクリプトとそのすべてが必要なようです。 –

+0

ちょうど私が望むライブラリは、夏時間のすべてのイベントを補正しません。明示的に島のようなPHPマニュアルの奇妙な領域で言及されているクラスに含まれていません。しかし、ほとんどの主要都市と国が含まれています。ですから、あなたがこれを使って世界規模を解決しようとするなら、私はあなたが99%カバーしていると言います。 –

+0

私のphpのiniファイルにはすでにこの行があります。 –

関連する問題