0

現在のサーバー時間を返す単純なファイルがあります。これが私のコードです

<?php 
$now = new DateTime(null, new DateTimeZone('Asia/Kolkata'));
echo $now->format("M j, Y H:i:s O")."\n"; 
?>

httpでファイルを開くと適切な時間が表示されますが、 httpsで開くと時間が数秒から約 30 分ずれます。

最初はこれはキャッシュの問題だと思っていましたが、キャッシュを無効にした後でもこれは持続しています。

編集

メインphpファイルにあるこのスクリプトで時間が呼び出されます

<script type="text/javascript">
function serverTime() { 
    var time = null; 
    $.ajax({url: 'https://url/timeset.php', 
        async: false, dataType: 'text', 
        success: function(text) { 
            time = new Date(text); 
        }, error: function(http, message, exc) { 
            time = new Date(); 
    }}); 
    return time; 
}

</script> 

スクリプトが日時を呼び出すと、php ファイルがブラウザで最後に開かれた日時が返されます。そのため、誰かがスクリプトが含まれているページを開くと、上記のコードが返す日時が間違っており、そのページが更新されても返される日時は変更されず、間違った古い日時が返されます。

1秒ごとにphpを更新し続ける方法はありますか? 日時のみの小さなファイルなので、多くのリソースを使用するべきではありません...

4

2 に答える 2

0

スクリプトでphpファイルから日付を取得するのではなく、JavaScriptの日付関数を使用して、必要な形式とタイムゾーンで日付を返しました。

提案をありがとう

于 2013-10-21T19:53:24.570 に答える