現在のサーバー時間を返す単純なファイルがあります。これが私のコードです
<?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を更新し続ける方法はありますか? 日時のみの小さなファイルなので、多くのリソースを使用するべきではありません...