PHPコードのstrtotimeにこの問題があり、時々(一部のタイムゾーンでのみ)間違っていて、他の人では正しいです!!
私はそれを理解することができません。
ページの上部にも を設定し<?php date_default_timezone_set('GMT'); ?>
ましたが、役に立ちません!
基本的には、if および else if 条件offset/3600
に応じて、設定された時間に値を加算または減算します。$time1 = strtotime('00:00');
オフセット/3660 値は、2 つのタイムゾーン間の時差です!
次のコードは、一部の場所では機能しますが、他の場所では機能しません! 基本的には、1 ~ 2 時間余分に追加されるか、1 ~ 2 時間余分に離陸/減算されることがあります (常にではありません)。
つまり、アビジャンとロンドンの時差は -1 です。表示される時間 (値) は、00:00 - 01:00 = 23:00 として 23:00 です。ただし、表示される値は 00:00 です。
ただし、前述したように、一部のタイムゾーンでは機能します。つまり、ニューヨークとロンドンの時差が -5 の場合、コードは機能し、19:00 が 00:00 - 05:00 = 19:00 として表示されます。
誰かがこれに光を当てることができますか?
問題のコードは次のとおりです。
<?php
$time1 = strtotime('00:00');
if (0 > $offset)
{
// For negative offset (hours behind)
$hour_dif = date('H:i', strtotime($time1 -$offset/3600));
$time1 = "{$hour_dif}";
}
elseif (0 < $offset)
{
// For positive offset (hours ahead)
$hour_dif = date('H:i', strtotime($time1 +$offset/3600));
$time1 = "{$hour_dif}";
}
else
{
// For offsets in the same timezone.
$time1 = "in the same timezone";
}
echo "{$time1}";
?>