JavaScript Date对象是否将输入日期字符串识别为UTC时间或本地时间?

时间:2012-03-21 09:39:21

标签: php javascript mysql

关于时间已经有很多问题,但我仍然找不到能回答我问题的问题。所以,如果这是重复,我不得不道歉。我的问题是:

我有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

我只是想知道,假设$postDate2012-03-30 01:00:00,并且客户端处于+ 8小时的时区,他会在警报中看到什么?即JavaScript Date对象是否将datestring识别为UTC时间或本地时间?

2 个答案:

答案 0 :(得分:2)

根据用户的区域设置,将失败并显示“无效日期”结果。

相反,您应该传递时间戳。时间戳始终为UTC。要从datetime格式获取时间戳,请通过strtotime()运行。但请记住,JS会以毫秒为单位执行时间戳,而不是秒,因此您必须在末尾添加额外的000

基本上是这样的:

$postDate = strtotime($postDate)."000";

警报的结果仍将取决于用户的时区,但它将与您提供的UTC时间戳正确偏移。例如,如果时间戳是1AM UTC,但用户是UTC + 8,则会看到上午9点。

答案 1 :(得分:1)

enter image description here是的,it does work,太棒了。只有2行代码。