javascript - 创建具有设定时区的日期而不使用字符串表示

标签 javascript timezone

我有一个网页,其中包含日、月和年的三个下拉菜单。如果我使用接受数字的 JavaScript Date 构造函数,那么我将获得当前时区的 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 时间创建 Date-object。

关于javascript - 创建具有设定时区的日期而不使用字符串表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/439630/

相关文章:

javascript - DOM 元素布局更改事件

javascript - 如何全局替换 JavaScript 字符串中的正斜杠?

javascript - Angular 延迟加载模块错误 - 'RouterModule.forRoot() called twice'

ruby-on-rails-3 - Arel 和 pgAdmin 从具有时间戳条件的同一查询返回不同的数据

elasticsearch - Logstash/ELK/elasticsearch 中的时区不正确

PHP 我的时区一周的第一天不正确

java - 如何从android中的Locale值获取时区?

javascript - jQuery slideToggle 变得疯狂——为什么?

php - 为什么在我的系统中默认的 PHP 时区是 "Europe/Moscow"?

javascript - 如何在React中同步操作或者说如何让react js代码逐行运行?