当前位置: 首页 > 面试题库 >

JavaScript使用设置的时区创建日期而不使用字符串表示形式

长孙文栋
2023-03-14
问题内容

我有一个网页,其中有三个下拉菜单,分别是日,月和年。如果我使用Date带数字的JavaScript
构造函数,那么我会得到一个Date当前时区的对象:

new Date(xiYear, xiMonth, xiDate)

输入正确的日期,但由于夏令时,它认为该日期为GMT + 01:00。

这里的问题是,我随后将其传递Date给Ajax方法,并且在服务器上反序列化日期时,日期已转换为GMT,因此浪费了一个小时,使一天倒退了一个小时。现在,我可以将日期,月份和年份分别传递给Ajax方法,但是似乎应该有更好的方法

公认的答案为我指明了正确的方向,但是使用setUTCHours()本身就发生了变化:

Apr 5th 00:00 GMT+01:00

Apr 4th 23:00 GMT+01:00

然后,我还必须设置UTC日期,月份和年份,最后以

Apr 5th 01:00 GMT+01:00

这就是我想要的。


问题答案:

使用.setUTCHours()它可以实际以UTC时间设置日期,这将使您可以在整个系统中使用UTC时间。

但是,除非指定日期字符串,否则不能在构造函数中使用UTC进行设置。

使用new Date(Date.UTC(year, month, day, hour, minute, second))可以从特定的UTC时间创建日期对象。



 类似资料:
  • 问题内容: 有这个字符串。我想将其转换为日期对象。 我需要使用: 要么 ? 问题答案: var d = new Date(2011,10,30); 由于月份从js中的0开始索引。

  • 问题内容: 我正在使用它来获取当前时间: 我想将值(我将其打印)放入日期对象中,我尝试了以下方法: 但是eclipse告诉我这个功能不好。 编辑 的是,我打印您使用System.out.println的价值 问题答案: 每当您要将String转换为Date对象时, 请使用尝试使用 。另外的事情是,如果您想将转换为,则应该使用函数。 现在已不建议使用Point for you,现在 不建议使用。现在

  • Edit:不幸的是,我需要以日期的形式获得结果,而不是字符串,所以我不能使用sdf.format(New Date().getTime()),因为它返回字符串。另外,我需要返回的日期是当前时间的日期,而不是来自静态字符串。我希望这能澄清

  • 在JavaScript中,为什么这两行代码使用不同的时区? 返回太阳9月12日2021 11:00 :03 GMT-0400(东部夏时制) 返回太阳9月12 2021 10:00:03格林尼治标准时间0500(东部标准时间) 为什么它们不是都在GMT-0500(东部标准时间)??? 这些行在代码中是一个接一个的,所以它们由同一个服务器运行。 谢谢"

  • 本文向大家介绍JavaScript 数字的字符串表示形式,包括了JavaScript 数字的字符串表示形式的使用技巧和注意事项,需要的朋友参考一下 示例 JavaScript具有从Number到String表示形式的本地转换,从2到36的任何基数。 十进制(以10为底)之后最常见的表示形式是十六进制(以16为底),但本节的内容适用于范围内的所有底。 为了将数字从十进制(以10为底)转换为十六进制(

  • 问题内容: 我正在尝试对JavaScript应用程序中的日期进行序列化/反序列化。 服务器端,我使用Java,JodaTime已安装在上面。我发现了如何使用UTC时区序列化为ISO,但是找不到如何进行反向操作。 这是我的代码 我不在乎是否使用Joda,只需要一个快速且有效的解决方案, 问题答案: 如果您使用的是Java 7或更早版本,则可以参考此文章。 如果您使用的是Java 8,则可以执行以下操