2013-01-20 13 views
5

PHP date("I")は、現在の日付が夏時間になっているかどうかによって、0または1を返します。しかし、私はこの正確な関数は、指定された日時の0または1を将来または過去に返す必要があります。PHPの日付( "I")、将来の日付または過去の日付

これはどのように達成できますか?

+1

を与えられた時間は、標準時間と夏時間で発生し、その潜在的なあいまいさがここにある場合には、時間が10月にあります。それはかなり小さい可能性がありますが、そこにあります。 – Spudley

答えて

11

はちょうどこのような将来の日付のスタンプ渡す:

is_daylisght_saving = date("I", future_timestamp); 

を参照してくださいPHP date()ドキュメントを

***** EDIT:**

適切に夏時間の情報を取得するにはデフォルトのロケールがサマータイムを使用する国に設定されていることを確認する必要があります。夏時間を使用している国のリストはhereです。

デフォルトのタイムゾーンの使用を変更するにはdate_default_timezone()次のように:もちろん

date_default_timezone_set('Europe/Rome'); // Italy uses daylight saving 
echo date("I", 1366456706); // will return 1 

date_default_timezone_set('America/Argentina/Buenos_Aires'); // Argentina doesn't use daylight saving 
echo date("I", 1366456706); // will return 0 
+1

あなたのお返事ありがとうTomas、しかし私はそれを試しても動作しません。 1366456706のタイムスタンプを取得しました。このタイムスタンプは2013年4月20日に変換され、夏時間に収まります。このタイムスタンプをタイムスタンプコンバータを介して変換すると、GMT +1と表示され、夏時間の中にあることを示しますが、日付(「I」)はまだゼロを返しています。私はこれを試した:日付( "私"、 "1366456706");運がない場合 – Ahmed

+0

future_timestampは文字列ではなく整数です。試してください( "I"、1366456706); –

+0

Tomasに感謝していますが、まだ0を返しています。タイムスタンプをコピーしてタイムスタンプをGMT + 1という日時に変換するウェブサイトに貼り付けるとします。タイムスタンプがこのGMT + 1のステータスを持つ天気をすぐに判断する方法は他にもありますか?ありがとう – Ahmed

関連する問題