2016-05-28 2 views
0

日次のカウントダウンを締め切り日に設定しています。コードは正常に動作します。タイムゾーンがそのパラメータで指定されていない限りstrtotime関数のタイムゾーンを設定します。

この関数の各パラメータは、デフォルトのタイムゾーンを使用しています。

唯一の問題

PHP Manualによると、関数はデフォルトのタイムゾーンを使用する、ということです。

タイムゾーンを指定できる必要があります。

私がこのマニュアルで読んだセクションでは、これを行う方法が完全にはっきりしていません。ここで

は私のコードです:

<?php 
$date = strtotime("September 30, 2016 11:59 PM"); 
$remaining = $date - time(); // number of seconds remaining 
$days_remaining = floor($remaining/86400); 
$hours_remaining = floor(($remaining % 86400)/3600); // display final 5 days only 
echo "$days_remaining Days Remaining"; 
?> 

は、上記のコードに米国太平洋標準時を統合するための簡単な方法はありますか?

私の推測では、このコードの最初の行にすることです:

date_default_timezone_set('America/Los_Angeles'); 

しかし、私はこれが動作するか分からないと私は他のスクリプトのタイムゾーンを変更する必要はありません。

私はこの目標を達成するための代替方法があります。

+1

DateTimeを使用しない特別な理由はありますか? –

+0

特に理由はありません。これは私が思いついたものです。よりシンプルで効率的な方法があれば、回答を投稿してください。 –

答えて

2

そんなに現在のタイムゾーンを保存date_default_timezone_get()

を使用して、既存のデフォルトのタイムゾーンをキャプチャすることができますが、新しいものを設定して、あなたのcalcの操作を行い、その後、この

$save_zone = date_default_timezone_get(); 

date_default_timezone_set('America/Los_Angeles'); 

$date = strtotime("September 30, 2016 11:59 PM"); 
$remaining = $date - time(); // number of seconds remaining 
$days_remaining = floor($remaining/86400); 
$hours_remaining = floor(($remaining % 86400)/3600); // display final 5 days only 
echo "$days_remaining Days Remaining"; 

date_default_timezone_set($save_zone); 
のようなオリジナルのタイムゾーンを置き換えます

有効なリストtimezone settings

1

タイムゾーンを文字列に追加しないのはなぜですか?

$inputDate = "September 30, 2016 11:59 PM"; 
$date = strtotime($inputDate . ' +0100'); 
関連する問題