1

時間帯に応じて電話番号をローテーションしようとしています。時刻が午前 8 時から午後 5 時までの場合は、888 番号が表示されます。午後 5 時以降で午前 8 時前の場合は、777 番号が表示されます。これは私がこれまでに取得したものですが、時間は午前 8 時から午後 5 時までの間にあるにもかかわらず、出力として 777 番号しか表示されません。

$dayPhoneNumber = "1-888-888-8888";
$nightPhoneNumber = "1-777-777-7777";
$currentPhoneNumber = "";

$nowHour = date("H"); 

$startHour = 8;
$endHour = 17;

if ($nowHour >= $startHour && $nowHour <= $endHour){
echo $dayPhoneNumber;
} else {
echo $nightPhoneNumber;
}
4

1 に答える 1

1

私の推測では、サーバーの時刻はコンピューターの時刻と同じではありません。ホスティング ソリューションを使用している場合、サーバーが全国または別の大陸にある可能性が非常に高いため、時間が異なります。

エンド ユーザーがどこにいるかではなく、1 つの場所だけを気にする必要がある場合は、簡単に行うことができます。米国西海岸にいる場合

date_default_timezone_set("America/Los_Angeles");
$hour = date("H", time()); 

タイムゾーンのリストは次のとおりです: http://www.php.net/manual/en/timezones.php

時間を決定する際にエンド ユーザーのタイム ゾーンを知る必要がある場合は、その方法について説明します:クライアントのタイム ゾーンを取得する方法は?

タイム ゾーンの問題に対処している場合は、UTC を使用して時刻を取得し、正しいタイム ゾーンを取得するために時間数を加算または減算することもできます。PHP で UTC 時刻を取得する

于 2013-10-22T20:48:27.377 に答える