我有一个用户评论系统,其中使用存储在数据库中的 UTC 时间戳以及评论来显示评论时间。
时间偏移用于使用 javascript 发布请求设置会话 timeoffset 变量以获取用户本地时间。
我这样做是因为用户来自不同的时区,我无法将时间单独存储在一个时区中,所以我将其存储在 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
?>
时间偏移量.php
<?php session_save_path('session/store');
session_start();
if(isset($_POST['timeoffset'])){
$_SESSION['timeoffset'] = (int)$_POST['timeoffset'];
echo $_SESSION['timeoffset'];
}
?>
它timeoffset not set
首先显示,然后在刷新后显示评论和时间。
请查看并建议任何可能的方法来做到这一点。
谢谢。