3

PHP時間に大きな問題があります。

何らかの理由で、一部のユーザーには異なる時刻 (2 時間) が表示され、他のユーザーには正しい時刻が表示されます。

コードは H:i:s dMy T で、PC からブラウザでページを表示すると、実際には午前 9 時に午前 11 時であることがわかります。RDP を使用してブラウザで確認すると、正しい時刻が表示されます。

両方のPCは国(英国)にあり、両方のPCのシステム時間は同じです。

タイムゾーンのデフォルトを設定しようとしましたが、何をしてもサーバーは一部のユーザーに正しい時刻を表示し、他のユーザーには2時間先の時刻を表示しますか?

コードはecho gmdate("H:i:s d-M-y T");

<?php echo gmdate("H:i:s d-M-y T"); ?>
4

1 に答える 1

0

回避策として、これを説明させてください: 適切な時間を取得するユーザーもいれば、-2h を取得するユーザーもいます。前回の時間をファイルに記録し、次にユーザーがページを開いたときに、$now が $last_time よりも小さいかどうかを確認し、小さい場合は 2 時間を追加します。これを数字で説明すると、User1 がページにアクセスすると、適切な時間、たとえば午前 11 時が返されます。User2 がページを開くと、午前 9 時に返されます。明らかに、この時間内に戻ることはできないため、2 時間を追加します。

ここにコード:

<?php
$last_time = file_get_contents("file.txt"); // a file where the last time has been saved
$now = strtotime(gmdate("H:i:s d-M-y T")); // Now !
if($now < $last_time){
    $now += 7200; // add 2 hours !
}
file_put_contents("file.txt", $now);
echo gmdate("H:i:s d-M-y T", $now);
?>

これが役に立ったことを願っています!

于 2012-11-04T10:58:15.350 に答える