将javascript日期分配给html5 datetime-local输入

问题描述 投票:13回答:2

DOM:

<input id="myTextbox" type="datetime-local" />

Javascript(jQuery):

$('#myTextbox').val(new Date().toISOString());

不起作用。 input [type = datetime-local]的格式应为ISO 8601,这是javascript的Date.toISOString()返回的格式。

javascript html5
2个回答
2
投票

使用input.valueAsNumber = new Date().getTime()

HTMLInputElement接口也具有valueAsDate属性,但不幸的是type=datetime-local不支持它。

https://html.spec.whatwg.org/C/#input-type-attr-summary


11
投票

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));
© www.soinside.com 2019 - 2024. All rights reserved.