HTML5 日期时间-本地 (Chrome) : How to input datetime in current time zone

标签 html timezone

我住在 GMT+9,我想输入我当前时区指定的日期和时间。 Chrome 版本 40.0.2214.93(64 位)

<input type="datetime-local" required>

但是,如果我在日期时间选择器中输入 12:00AM,

enter image description here

元素返回的实际值是 2015-01-30T00:00(通过在 Chrome 控制台中打印出来),这等于我所在时区的上午 9:00。我是否必须手动将 9 小时添加到结果中?由于 Chrome 不支持 datetime 作为输入类型,我不能使用 datetime 作为替代。

最佳答案

“2015-01-30T00:00”正是您输入的内容,因此这就是返回的结果。

你说“......在我的时区等于上午 9:00”。仅当结果为 UTC 时才会如此——但事实并非如此。通过 ISO8601标准,如果值以尾随 Z 结尾,例如“2015-01-30T00:00Z”,则仅假定为 UTC。

也许您正在将值提供给 Date 构造函数?

new Date("2015-01-30T00:00")

在这种情况下,值 被解释为 UTC - 但这是由于 Date 对象的一个​​怪癖。您可以通过一些替代来解决这个问题:

new Date("2015-01-30T00:00".replace('T',' ').replace('-','/'))

或者,如果您更喜欢更简洁的代码,请考虑使用 moment.js ,它没有那个怪癖:

moment("2015-01-30T00:00").toDate();  // or .format(), or other functions...

关于HTML5 日期时间-本地 (Chrome) : How to input datetime in current time zone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28234572/

相关文章:

javascript - 将数组从 .jsp 传递到 javascript 函数

JavaScript 坏了?

PHP - timezone_name_from_abbr 显示错误的时区

html - 使嵌入元素移动响应

javascript - 为什么更改 InnerHtml 时此 div 会下拉?

php - 显示用于复制/粘贴的任何网站源代码

python DST 和 GMT 管理到调度程序中

python - 在 Python 中检查当前时间是否小于特定时间?

java - 将当前日期时间转换为夏令时罗马尼亚时间

ios - 如何在 iOS 中获取 "days ago, hours ago"时间格式?