有人可以解释为什么当我使用除00以外的秒设置datetime-local输入的默认值时,浏览器会给出错误“无效值”。
这可能是Chrome在datetime-local实现中的一个错误,因为此错误未出现在最新的Firefox和Safari中。
Chrome出错:30.0.1599.69
Chrome Canary:32.0.1665.2 canary
这有效:
<input type="datetime-local" name="pub_date" value="2013-10-09T15:38:00">
但这不是:
<input type="datetime-local" name="pub_date" value="2013-10-09T15:38:15">
根据W3 Spec for the datetime-local input element,value属性应包含“表示本地日期和时间的字符串。”
Example:
1985-04-12T23:20:50.52
1996-12-19T16:39:57
我尝试了上述两个例子,它们也不起作用。
更新:已确认错误&amp;溶液
此行为是known bug。
截至今天,快速解决方法是为非零秒添加步骤属性:
<input type="datetime-local"
name="pub_date"
value="2013-10-09T15:38:15"
step="1">
答案 0 :(得分:2)
适用于Chrome版本52.0.2743.116 m
[
"operator1(value)",
"operator1(value), operator2(value)",
"operator1(value), operator2(value), operator_n(value)"
].forEach((str)=>{
var results = str
.split(/[,\s]+/) // split operations
.map(s=>s.match(/(\w+)\((\w+)\)/)) // extracts parts of the operations
.filter(Boolean) // ensure there's no error (in case of impure entries)
.map(s=>s.slice(1)); // make the desired result
console.log(results);
});
答案 1 :(得分:1)
Chrome浏览器需要“yyyy-MM-ddThh:mm”中的日期,然后是可选的“:ss”或“:ss.SSS”格式。因此,当我们分配日期和时间时,我们需要以所需的格式分配它,否则它将不会显示日期时间。甚至我们也可以从控制台选项卡中的浏览器检查工具[Ctrl + I]确认。
答案 2 :(得分:0)
Chrome正在寻找一个完整的时间戳,真的没办法放一个。只需将你的毫秒归零,你应该做得很好。