输入类型DateTime - 值格式?

Rob*_*inJ 48 html html5 datetime html-input

我应该在哪种格式中添加日期和时间,以便在HTML5输入元素中使用datetime类型?

我试过了:

  • 1338575502
  • 01/06/2012 19:31
  • 01/06/2012 19:21:00
  • 2012-06-01
  • 2012-06-01 19:31
  • 2012-06-01 19:31:00

他们似乎都没有工作.

Hit*_*eeb 46

对于 <input type="datetime" value="" ...

表示全局日期和时间的字符串.

:[RFC 3339]中定义的有效日期时间,具有以下附加资格:

•日期/时间语法中的文字字母T和Z必须始终为大写

•date-fullyear生产被定义为四个或更多个数字,表示大于0的数字

示例:

1990-12-31T23:59:60Z

1996-12-19T16:39:57-08:00

http://www.w3.org/TR/html-markup/input.datetime.html#input.datetime.attrs.value

更新:

此功能已过时.虽然它可能仍然适用于某些浏览器,但不鼓励使用它,因为它可以随时删除.尽量避免使用它.

HTML是用于输入日期和时间(小时,分钟,秒和小数秒)以及时区的控件.此功能已从WHATWG HTML中删除,并且在浏览器中不再受支持.

相反,浏览器正在实现(并且鼓励开发人员使用)datetime-local输入类型.

为什么HTML5输入类型的日期时间已从已支持它的浏览器中删除?

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime

  • 对于任何想要将日期字符串转换为本文中提到的格式的人来说.使用JavaScript,您可以:`new Date('valid-date-here').toISOString()` (15认同)

Joh*_*nde 16

本文似乎显示了可接受的有效类型

<time>2009-11-13</time>
 <!-- without @datetime content must be a valid date, time, or precise datetime -->
<time datetime="2009-11-13">13<sup>th</sup> November</time>
 <!-- when using @datetime the content can be anything relevant -->
<time datetime="20:00">starting at 8pm</time>
 <!-- time example -->
<time datetime="2009-11-13T20:00+00:00">8pm on my birthday</time>
 <!-- datetime with time-zone example -->
<time datetime="2009-11-13T20:00Z">8pm on my birthday</time>
 <!-- datetime with time-zone “Z” -->
Run Code Online (Sandbox Code Playgroud)

这个涵盖了在<input>现场使用它:

<input type="date" name="d" min="2011-08-01" max="2011-08-15">HTML5输入类型"date"的这个示例与属性min和max结合使用,显示了我们如何限制用户可以输入的日期.属性min和max不相互依赖,可以单独使用.

<input type="time" name="t" value="12:00">HTML5输入类型"时间"允许用户选择以24小时格式显示的相应时间.如果我们没有包含默认值"12:00",则时间将自己设置为用户本地计算机的时间.

<input type="week" name="w"> HTML5输入类型周将显示由"W"表示的星期的数字版本以及相应的年份.

<input type="month" name="m">HTML5输入类型月完全符合您的预期.它显示月份.准确地说,它显示月份的数字版本以及年份.

<input type="datetime" name="dt">HTML5输入类型Datetime显示UTC日期和时间代码.用户可以以一分钟为增量向前或向后更改时间步长.如果您希望显示用户的本地日期和时间,则需要使用下一个示例datetime-local

<input type="datetime-local" name="dtl" step="7200">由于datetime一次步进一分钟,因此您可能希望使用属性"step"更改默认增量.在下面的示例中,我们将属性步长设置为7200(60秒X 60分钟X 2),使其增加两个小时.


Bra*_*ill 15

对于它的价值,与iOS7下探支持,datetime你需要使用datetime-local哪个不接受时区部分(这是有道理的).

不起作用(iOS无论如何):

 <input type="datetime-local" value="2000-01-01T00:00:00+05:00" />
Run Code Online (Sandbox Code Playgroud)

作品:

<input type="datetime-local" value="2000-01-01T00:00:00" />
Run Code Online (Sandbox Code Playgroud)

PHP值(windows安全):

strftime('%Y-%m-%dT%H:%M:%S', strtotime($my_datetime_input))
Run Code Online (Sandbox Code Playgroud)

  • 我个人对iOS 7不太关心:p我关心标准.如果Apple没有,那就是他们的问题. (9认同)
  • @RobinJ不幸的是,HTML5已经决定标准化实际存在的内容而不是可能存在的内容,并且支持`type ="datetime"`已经很少了.当前的HTML5版本指出该功能"存在风险,可能因缺乏实施而被删除" (3认同)

Jac*_*Kay 10

这浪费了我一小时的时间.对于你渴望的海狸,以下格式适合我:

<input type="datetime-local" name="to" id="to" value="2014-12-08T15:43:00">
Run Code Online (Sandbox Code Playgroud)

该规范对我来说有点混乱,它说使用RFC 3339,但在我的PHP服务器上,当我使用格式DATE_RFC3339它没有初始化我的hmtl输入:( DATE_RFC3339的PHP常量是"Ymd\TH:i:sP "在撰写本文时,您应该摆脱时区信息(我们使用的是datetime-LOCAL,伙计们).所以适合我的格式是:

"Y-m-d\TH:i:s"
Run Code Online (Sandbox Code Playgroud)

我会认为能够设置datepicker的值更直观,因为datepicker显示日期,但我猜测它的显示方式因浏览器而异.


Eni*_*lus 5

这适用于设置 INPUT 的值:

strftime('%Y-%m-%dT%H:%M:%S', time())
Run Code Online (Sandbox Code Playgroud)