如何将用户本地时间保存为数据库中的moment.js对象?

时间:2017-06-23 17:05:51

标签: javascript mongodb datetime momentjs

我正在使用api.ai从字符串中提取日期和时间。对于用户输入"今天9:00"我很沮丧:

{ 
   date: '2017-06-23',
   time: '09:00:00'
}

这表示用户时区的时间。现在我必须做三件事:

  1. 向用户显示时间,以便他可以检查我是否正确提取了它。这应该在他的时区完成。
  2. 以mongodb db保存为本地时间值
  3. 以utc时间保存在mongodb db中
  4. 要做第一个,我使用moment.js如下:

    moment(date+'T'+time).format("dddd, MMMM Do YYYY, HH:mm");
    

    我没有使用" Z"我得到" 2017年6月23日星期五,09:00"这正是我想要的。

    但我真的不知道怎样才能做到两点。据我所知,我应该将它们保存为datetime对象。我也有用户的时区偏移量(来自facebook个人资料)所以我这样做了

    moment(date+'T'+time).subtract(offset, 'hours').toDate()
    

    保存为ISODate(),但时间都错了。

    .toDate()函数总是减去三个小时,这是我的服务器时区偏移量。

    我花了9个小时阅读所有时间格式和moment.js。我还是以某种方式得不到它。对我来说,这一直是一个黑暗的领域,我正在开始理解,但我只是需要最后的推动。

0 个答案:

没有答案