我尝试使用以下代码将日期设置为我的日期选择器。
document.getElementById('selFecha').valueAsDate = new Date();

<input type='date' id='selFecha'>
&#13;
但它给了我明天的日期。我说我的电脑的本地日期并没有错,因为我向控制台发送了new Date()
并给了我当前的日期。
我解决了以下问题:
var fecha = new Date;
var d = fecha.getDate();
var m = fecha.getMonth()+1;
var y = fecha.getFullYear();
if(d<10){
d='0'+d;
}
if(m<10){
m='0'+m;
}
var hoy = y+"-"+m+"-"+d;
document.getElementById('selFecha').value = hoy;
但我不喜欢它。第一个代码可能会发生什么?
我的时区是-6。我在Chrome和Firefox中测试过。
答案 0 :(得分:0)
.valueAsDate()将始终默认为您提供GMT日期。 https://austinfrance.wordpress.com/2012/07/09/html5-date-input-field-and-valueasdate-timezone-gotcha-3/
答案 1 :(得分:0)
嗯,现在这个有效。感谢ecg8向我发布了一个博客,并对其进行了解释。
var f = new Date();
document.getElementById('selFecha').valueAsDate = new Date(f.getFullYear(), f.getMonth(), f.getDate(), 12);
&#13;
<input type='date' id='selFecha'>
&#13;
HTML中的输入日期无法读取时区,因此您必须先将当前日期作为参数发送给new Date()
,然后再运行其他new Date()
。
12
是指定一天中的一小时(为了避免出现时区问题)。