关于时间已经有很多问题,但我仍然找不到能回答我问题的问题。所以,如果这是重复,我不得不道歉。我的问题是:
我有postDate
格式的datetime
MySQL表格列。我的服务器是系统时间(UTC)。我有以下PHP脚本:
<script type='text/javascript'>
var expiry = new Date('$postDate');
alert(expiry);
</script>
$postDate = date("r", strtotime($postDate)); // sorry forgot to add this line
我只是想知道,假设$postDate
是2012-03-30 01:00:00
,并且客户端处于+ 8小时的时区,他会在警报中看到什么?即JavaScript Date
对象是否将datestring
识别为UTC时间或本地时间?
答案 0 :(得分:2)
根据用户的区域设置,将失败并显示“无效日期”结果。
相反,您应该传递时间戳。时间戳始终为UTC。要从datetime
格式获取时间戳,请通过strtotime()
运行。但请记住,JS会以毫秒为单位执行时间戳,而不是秒,因此您必须在末尾添加额外的000
。
基本上是这样的:
$postDate = strtotime($postDate)."000";
警报的结果仍将取决于用户的时区,但它将与您提供的UTC时间戳正确偏移。例如,如果时间戳是1AM UTC,但用户是UTC + 8,则会看到上午9点。
答案 1 :(得分:1)
是的,it does work,太棒了。只有2行代码。