当前位置: 首页 > 知识库问答 >
问题:

HTML5 datetime本地(Chrome):如何输入当前时区的datetime

常元章
2023-03-14

我住在格林尼治时间9点,我想输入在我当前时区指定的日期和时间。Chrome版本40.0。2214.93(64位)

<input type="datetime-local" required>

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

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

共有1个答案

周学义
2023-03-14

"2015-01-30T00:00"正是你输入的,所以这是返回的结果。

你说“...在我的时区等于上午9点”。只有当结果是在UTC时,这才是真的——事实并非如此。根据ISO8601标准,只有当值以尾随Z结束时,如“2015-01-30T00:00Z”,才会被推定为UTC。

也许您正在将值输入到日期构造函数中?

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

 类似资料:
  • 我正在尝试使用方法在输入字段中获取当前日期和时间。 我尝试过使用和其他库来执行此操作,但由于某些原因,它无法转换为当前的字段。我做错了什么? 我决定单独使用回到基础,这就是我迄今为止设法做到的。 如果在输入框中将输入类型更改为,则脚本工作正常,但如果更改为datetime local,则脚本不工作。 JsFiddle:jfiddle

  • 我是否可以将HTML5输入类型的默认值设置为今天的日期和当前的时间。 谢谢你

  • 我想试着测试一些javascript时区的东西,我需要把我的浏览器放到一个不同的时区,我在英国,所以它被设置为GMT,在冬天刚好和UTC一样,所以不可能计算出差异是否已经被考虑在内。 例如,我想把我的PC放入EST中,但我在Chrome选项中找不到任何东西,我尝试在Win10选项中更改我的时区,但浏览器忽略了它。重启Chrome没有任何帮助,即使我的PC确定它在EST并且我的Windows工具栏中

  • 我想将datetime local的默认值设置为当前日期和时间(时间应仅包含小时和分钟,如“2014-01-02T11:42”。)使用angularJs。 编辑:下面是我的html代码 angularJs代码 通过这种方法,我可以设置当前日期和时间,但它也包括秒和毫秒。

  • 问题内容: 有人知道MySQL中是否有这样的功能吗? 更新 这不会输出任何有效的信息: 或者也许MySQL本身不知道确切使用了什么,那很好,我们可以在这里介入,只要我能获得不像… 问题答案: 从手册(第9.6节): 可以按以下方式检索全局时区和特定于客户时区的当前值: 编辑如果MySQL设置为系统时区的从属,则以上内容将返回,没有帮助。由于您使用PHP,如果从MySQL的答案是,你可以接着问什么时

  • 我有在Html: 和代码(angularJs) 无论我做什么,结果都是“2018-11-10 10:11:00”。我真的需要时间。我能做什么? 谢谢。