DOM:
<input id="myTextbox" type="datetime-local" />
Javascript(jQuery):
$('#myTextbox').val(new Date().toISOString());
不起作用。 input [type = datetime-local]的格式应为ISO 8601,这是javascript的Date.toISOString()返回的格式。
使用input.valueAsNumber = new Date().getTime()
。
HTMLInputElement
接口也具有valueAsDate
属性,但不幸的是type=datetime-local
不支持它。
http://www.w3schools.com/jsref/jsref_toisostring.asp:
toISOString()方法使用以下命令将Date对象转换为字符串ISO标准。
该标准称为ISO-8601,格式为:YYYY-MM-DDTHH:mm:ss.sssZ
尽管ISO 8601具有一定的灵活性,但是javascript的Date的toISOString()的格式与上面完全一样。
末尾的'Z'表示这是UTC日期。因此,此表示包括时区信息。 (JavaScript日期自然以UTC时间表示,因为它们在内部以毫秒为单位表示从纪元开始。)
[type = datetime-local的HTML5输入格式必须为...
以下各部分,按完全相同的顺序:
- 日期。
- 文字字符串“ T”。
- 一次。
示例:
1985-04-12T23:20:50.52
1996-12-19T16:39:57
http://www.w3.org/TR/html-markup/input.datetime-local.html
这仍然是ISO 8601,但是更加严格,并且不允许指定时区。
幸运的是,删除时区与删除结尾的'Z'一样容易。
var isoStr = new Date().toISOString();
$('#myTextbox').val(isoStr.substring(0,isoStr.length-1));