コメントとともにデータベースに保存されている UTC タイムスタンプを使用してコメントの時間が表示されるユーザー コメント システムがあります。
タイム オフセットは、javascript ポスト リクエストを使用してセッションの timeoffset 変数を設定し、ユーザーの現地時間を取得するために使用されます。
ユーザーは異なるタイムゾーンから来ており、1つのタイムゾーンだけで時間を保存できないため、このようにしました。そのため、UTCで保存し、タイムゾーンのtimeoffsetを使用して表示しました。
このシステムはリアルタイムでは機能していませんが、更新後に機能しています。
コメント.php
<?php
session_save_path('session/store');
session_start();
?>
<script type="text/javascript" src="jquery/jquery.js"></script>
<script type="text/javascript">
var timeoffset = new Date().getTimezoneOffset();
$.post('timeoffset.php', {timeoffset:timeoffset}, function(data){
//alert(data);
});
</script>
<?php
if(isset($_SESSION['timeoffset'])&&!empty($_SESSION['timeoffset'])){
date_default_timezone_set('UTC');
$timeoffset = (int)$_SESSION['timeoffset'];
}
else{
echo 'timeoffset not set';
exit;
}
// here are comments displayed using while loop
// time of comments is displayed like this
echo gmdate("F j, Y, h:i:s a", $row['timestamp']-($timeoffset*60)); //$row['timestamp'] = UTC time stamp stored in database. e.g: 1377509788
?>
timeoffset.php
<?php session_save_path('session/store');
session_start();
if(isset($_POST['timeoffset'])){
$_SESSION['timeoffset'] = (int)$_POST['timeoffset'];
echo $_SESSION['timeoffset'];
}
?>
最初に表示されtimeoffset not set
、次に更新後にコメントと時間が表示されます。
これを行うための可能な方法を見て提案してください。
ありがとう。