在日期字段中设置日期将其设置为

时间:2015-10-06 14:03:08

标签: javascript html google-chrome date

我使用日期输入类型在HTML中显示/获取表单的日期:

<input type="date">

要设置JavaScript的日期:

myInput.valueAsDate = new Date();

这很好用。但是如果我想设置另一个日期对象,例如:

myInput.valueAsDate = new Date(1995, 0, 1);

显示12/31/1994 - 这是在1995年新年前夕的前一天。如果我将24添加为小时参数,则日期会正确显示,但日期对象本身显然是 2 nd 1995年1月,这不是很好地解决了这个问题。

  

console.log(myInput.valueAsDate = new Date(1995, 0, 1));
console.log(myInput.valueAsDate);
<input type="date" id="myInput">

我在控制台中得到了这个:

Sun Jan 01 1995 00:00:00 GMT+0200 (EET)
Sat Dec 31 1994 02:00:00 GMT+0200 (EET)

这是浏览器问题吗?有没有解决方法/解决方案?

最后,我想要使用任何插件来显示/获取日期但我想使用natative date input元素(至少,问题是关于它:-))。

我在Chromium和Chrome中重现了这一点。 Firefox似乎不支持日期类型输入尚未

1 个答案:

答案 0 :(得分:3)

时区差异为this

显然,在使用new Date()时,您使用的是当前时区,valueAsDate需要GMT dateTime

将代码更改为此类

console.log(myInput.valueAsDate = new Date(1995, 0, 1,12));

应该有效

更新1

console.log(myInput.valueAsDate = new Date(Date.UTC(1995, 0, 1));

应该适用于所有时区。