输入类型 DateTime - 值格式?

Posted

技术标签:

【中文标题】输入类型 DateTime - 值格式?【英文标题】:Input type DateTime - Value format? 【发布时间】:2012-06-06 23:11:05 【问题描述】:

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

我试过了:

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

它们似乎都不起作用。

【问题讨论】:

你能贴出你试过的代码吗? @j08691 <input type="datetime" name="timeOpen" value="<?php echo date('d/m/Y H:i:s'); ?>" size="64" required="required" /> 【参考方案1】:

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

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

:有效的日期时间 如 [RFC 3339] 中所定义,具有以下附加条件:

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

•日期整年产生被定义为四或 代表大于 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 输入类型。

Why is HTML5 input type datetime removed from browsers already supporting it?

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

【讨论】:

我不知道怎么了,但是...imgdumper.nl/uploads5/4fc8fe650df5f/… 您描述的是datetime-local 类型,而不是datetimedatetime 实际上允许时区、偏移量等。请参阅:W3C/html5: input type=datetime。 对于任何希望将日期字符串转换为本文中提到的格式的人。使用 javascript,您可以:new Date('valid-date-here').toISOString() @HithamS.AlQadheeb 我也面临同样的问题。可以改变时间的格式吗?***.com/questions/48880956/… const dateForDateTimeInputValue = date => new Date(date.getTime() + new Date().getTimezoneOffset() * -60 * 1000).toISOString().slice(0, 19) 【参考方案2】:

为了它的价值,随着 ios7 放弃对datetime 的支持,您需要使用datetime-local,它不接受时区部分(这是有道理的)。

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

 <input type="datetime-local" value="2000-01-01T00:00:00+05:00" />

作品:

<input type="datetime-local" value="2000-01-01T00:00:00" />

PHP 的价值(Windows 安全):

strftime('%Y-%m-%dT%H:%M:%S', strtotime($my_datetime_input))

【讨论】:

就我个人而言,我对 iOS 7 并不关心:p 我关心的是标准。如果 Apple 不这样做,那就是他们的问题。 @RobinJ 不幸的是,HTML5 已经决定对实际存在的内容进行标准化,而不是对可能存在的内容进行标准化,并且对type="datetime" 的支持已经很少。当前的 HTML5 版本指出该功能“存在风险,可能由于缺乏实施而被删除” 另见***.com/questions/21263515/… schema.org/docs/gs.html Sod Apple,我会坚持彼此一致的标准。 使用桌面 Chrome v53 和安卓 chrome。谢谢!【参考方案3】:

This article 似乎显示了可接受的有效类型

<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” -->

This one 涵盖在&lt;input&gt; 字段中使用它:

&lt;input type="date" name="d" min="2011-08-01" max="2011-08-15"&gt;这个 HTML5 输入类型“日期”的示例与属性 min 结合 max 展示了我们如何限制用户可以输入的日期。这 属性 min 和 max 不相互依赖,可以使用 独立。

&lt;input type="time" name="t" value="12:00"&gt; HTML5 输入类型 “时间”允许用户选择显示的相应时间 以 24 小时格式。如果我们没有包含默认值“12:00” 时间将设置为用户本地机器的时间。

&lt;input type="week" name="w"&gt; HTML5 输入类型周将显示 用“W”表示的一周的数字版本以及 相应的年份。

&lt;input type="month" name="m"&gt; HTML5 输入类型 month 确实 正是你可能期望它做的。它显示月份。成为 精确它显示月份的数字版本以及 年。

&lt;input type="datetime" name="dt"&gt; HTML5 输入类型 Datetime 显示 UTC 日期和时间代码。用户可以更改时间 以一分钟为增量前进或后退。如果你想 显示您需要使用的用户的本地日期和时间 下一个示例 datetime-local

&lt;input type="datetime-local" name="dtl" step="7200"&gt; 因为 datetime 一次通过一分钟,您可能需要更改 使用属性“step”的默认增量。在下面的 例如,我们将通过设置将其增加两个小时 将 step 属性设置为 7200(60 秒 X 60 分钟 X 2)。

【讨论】:

不过,它似乎不起作用。 imgdumper.nl/uploads5/4fc8fe650df5f/… 在您刚刚添加的关于input 元素的部分中,它提供了datetime 的示例,但没有datetime。而且,正如我在问题中提到的那样,简单地将它们组合起来是行不通的。 没有日期时间标签 @D3mon-1stVFW ...不过,我没有使用datetime 标签 @D3mon-1stVFW 这怎么不是 HTML5?【参考方案4】:

这真是浪费了我一个小时的时间。对于热心的海狸,以下格式对我有用:

<input type="datetime-local" name="to" id="to" value="2014-12-08T15:43:00">

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

"Y-m-d\TH:i:s"

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

【讨论】:

【参考方案5】:

这适用于设置 INPUT 的值:

strftime('%Y-%m-%dT%H:%M:%S', time())

【讨论】:

【参考方案6】:

对于那些寻找这个的人来说,该标签正确地显示为 HTML5-Tag:

<input type="datetime" name="somedatafield" value="2011-12-21T11:33:23Z" />

【讨论】:

我认为 datetime 仅在 Firefox 上可用。【参考方案7】:

我使用momentjs

moment(value).format("YYYY-MM-DDTHH:mm:ss")

【讨论】:

以上是关于输入类型 DateTime - 值格式?的主要内容,如果未能解决你的问题,请参考以下文章

将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围

遍历数据库全部表,将是datetime类型的列的值进行更新

难倒 C# DateTime ToString() 格式问题

DateTime(“2019-02-16T10:00:00 + 08:00”)使用偏移值转换为本地日期时间

mysql中的时间类型datetime,date,time,year,timestamp小知识点

如何使用 ToString() 格式化可为空的 DateTime?