JavaScript/NodeJS-Mongo DB获取带偏移量的日期(时区)
JavaScript/NodeJS - Mongo DB gets Dates with offsets (timezone)
我们正在从Mongo数据库加载日期。看起来Mongo将所有内容都保存在UTC中,但当JS创建Date对象(用于显示此日期)时,它会添加/减少时区偏移。结果是,例如:
- 如果我保存日期"2013-06-20 01:00:00"
- 该日期稍后将以"2013-06-19 22:00:00"的形式自动填写(例如阿根廷时区UTC-03:00),如果用户在不更改日期的情况下保存该表格,则该日期将使用错误的时间保存
- 最糟糕的是,下一次保存将减去3个小时,以此类推
正如你所看到的,我可以得到甚至不同的日子,我想保存。我看到了一些类似的案例,但没有使用相同的技术,我使用的是Nodejs、MongoDB和Backbone。现在我正在做这样的事情:
parse: function(response) {
var dateStart = new Date(response.time.start);
var offset = dateStart.getTimezoneOffset() * 60000;
response.time.start = new Date(dateStart.valueOf() + offset);
return response;
}
但它真的很难看,每次实例化一个新的Date()时我都必须这样做
有人知道解决这个问题的好方法吗?
因此,当您在web浏览器中实例化Date对象时,它将位于浏览器的本地时区。有时这有帮助,有时没有。您可以使用moment.js moment.utc(myDate)
来处理此问题,并将事情保持在UTC。总的来说,我强烈推荐moment.js作为你去瑞士军刀的日期相关代码。
另一种方法是将客户端更改为不向服务器提交字段,除非它们的值确实发生了更改。
相关文章:
- 获取用户选择的不带时区的日期
- 分析特定区域设置(而不是时区!)中的日期字符串
- moment.js在两个时区格式的日期之间存在差异
- 获取本地时间的JS日期,日期对象中没有时区详细信息
- Javascript-将时区添加到日期倒计时中
- 使用JavaScript日期的任何时间的时区偏移量
- javascript日期时区问题
- 读取本地时区的日期的Javascript
- 时刻时区.js允许我传递时区缩写并获取转换后的日期/时间
- 转换 JSON 日期,不考虑时区
- 如何使用 JavaScript 更改日期的时区而不更改时间
- 如何将 UTC 日期时间(字符串)转换为访问者时区
- Javascript 解析 json 日期时区不匹配会导致显示错误的日期
- NetSuite RESTlet,提交日期/时区问题
- JavaScript 日期时区的奇怪行为
- yyyy-mm-ddThh:mm:ss.sssZ日期/时区格式是什么,以及如何在JavaScript中复制它
- Node.js日期时区和getMonth()
- 时间戳日期时区问题在dojo
- 使用日期时区操作
- JavaScript/NodeJS-Mongo DB获取带偏移量的日期(时区)