HTML5,输入类型datetime vs datetime-local,我应该使用哪个?

时间:2011-10-19 00:15:35

标签: html5

我找不到像返回值那样的更多差异......

"2011-10-18T00:00:00.00Z" // datetime value 

"2011-10-18T00:00:00.00" // datetime-local value

我错过了什么吗?

5 个答案:

答案 0 :(得分:18)

更新:W3C添加了type@datetime-local并删除了对type@datetime的支持 - 浏览器现在将日期时间渲染为普通类型文本:请参阅Why is HTML5 input type datetime removed from browsers already supporting it?

旧答案供参考

我希望你没有选择datetime-local。 : - )

  

W3C HTML已删除输入类型@ datetime-local; “很少独立   价值与价值潜在开发者混淆的根源“

来源:https://twitter.com/html5/status/433038890937901056

此过程的历史记录在此处:http://encosia.com/setting-the-value-of-a-datetime-local-input-with-javascript/

  

围绕datetime输入存在一些令人困惑的不稳定因素   HTML5已合并为推荐内容。

     

早期,W3c HTML5规范只提出了datetime输入。从iOS 5,Mobile开始   Safari开始显示与您输入的UI相匹配的UI   在原生应用中找到。其他移动浏览器也很快效仿。

     

后来,datetime已从HTML5草案规范中删除,转而支持   结合各个日期和时间输入来提示用户   日期/时间值,带有两个独立的输入。同时减少了数量   新输入类型有一定意义,它忽略了显示的效用   已经存在且熟悉的组合日期/时间小部件   移动设备。

     

接下来,将datetime-local输入添加到规范中   替换删除日期时间的空白。新的输入会   类似于旧的,但缺乏时区的概念   偏移。

     

2014年底,W3C决定放弃日期时间   建议HTML5规范因为它可能导致混淆。然而,   占主导地位的移动浏览器(即Mobile Safari和Chrome)   已经实现了datetime-local并使其成为事实上的标准。   因此,w3C让步了,并将其添加回最新推荐   草案。

     

再加上混乱,Apple仍然列出两者   datetime和datetime-local作为iOS 5.0和支持的输入类型   后来。但事实并非如此。截至iOS 7,Mobile Safari   开始显示其日期时间本地输入和本地接口   同时放弃了对datetime输入的支持。和任何一样   浏览器没有增强支持datetime的输入类型   输入开始回退到iOS 7上的纯文本类型字段。

     

长话短说,你必须在iOS 7+上使用datetime-local(至少通过   当我写这篇文章的当前版本的8.1.3),这对你很有帮助   了解“本地”意味着输入与时区无关。

答案 1 :(得分:14)

两者之间的区别在于datetime-local输入不包括时区。如果时区对您的应用程序不重要,请使用datetime-local。

有些浏览器仍在尝试赶上日期时间输入类型。 Firefox 7在这方面仍未取得任何进展。相反,使用三个选择字段设置您自己的字段,其中包含与今天日期相关的选项。这使您可以更好地控制它的实际外观和行为,并且您不会冒很多用户只看到常规文本字段并且不得不猜测如何在其中输入信息的风险。

答案 2 :(得分:1)

查看iOS5的HTML5日期输入字段,或Android版Google Chrome,这非常酷。两者都支持类型日期,日期时间,日期时间 - 本地,时间,月份,仅缺少一周。特别是对于移动/触摸客户端,新输入时间的支持非常重要。对于我的应用程序,我将根据客户端显示基于js / html的日历(如dynarch)或html5输入字段。

答案 3 :(得分:0)

根据MDN,这是最新的(2017年4月23日)和明确的答案(粗体):

  

< input type =“datetime”>

     

过时

     

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

     

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

     

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

Source

答案 4 :(得分:-3)

以下代码显示了所有浏览器中输入框的日历。将代码粘贴到页面顶部。

GET https://www.googleapis.com/drive/v3/files/0B9jNhSvVjoIVM3dKcGRKRmVIOVU?alt=media
Authorization: Bearer ya29.AHESVbXTUv5mHMo3RYfmS1YJonjzzdTOFZwvyOAUVhrs