使用日期对象显示UTC日期时间输入的本地时间

时间:2012-04-03 10:21:23

标签: javascript html date

我有一个表格,要求用户输入UTC日期和UTC时间。当输入字段发生任何变化时,将向用户显示相应的本地日期和时间。以下是HTML代码:

<form>
 UTC Date: <input type=text name=cDate value='' size=6 onchange='showLT();'>(DDMMYY)
 <br>
 UTC Time: <input type=text name=cTime value='' size=4 onchange='showLT();'>(HHMM)
 <br>
 Local Date and Time: <span id='local'></span>
</form>

<script type='text/javascript'>
function showLT() {
 var A = document.forms[0].cDate.value;
 var B = document.forms[0].cTime.value;
 var C = new Date(A.slice(4,6), A.slice(2,4)-1, A.slice(0,2),
  B.slice(0,2), B.slice(2,4), 0);
 document.getElementById('local').innerHTML = C.toLocaleString();
}
</script>

我面临两个问题:

  1. 对于两位数的年份,我一直认为它应该被解释为 属于1970年至2069年的范围。但是,当我尝试输入时 UTC日期为131211,年份被解释为1911年,而不是2011年。
  2. 显示的显示日期是 Wed 13 Dec 1911 08:32:00 MALT , 我认为是马耳他的时间,而不是我的地方距离+8小时。我没有 在其他功能中显示我当地时间的问题 toLocaleString()已应用。我很惊讶它显示了一个 在这种情况下,不同的时区。

1 个答案:

答案 0 :(得分:0)

您需要指定四位数年份......或者将+100添加到当前年份。

UTC时间和POSIX纪元时间是两回事。