我正在使用api.ai从字符串中提取日期和时间。对于用户输入"今天9:00"我很沮丧:
{
date: '2017-06-23',
time: '09:00:00'
}
这表示用户时区的时间。现在我必须做三件事:
要做第一个,我使用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。我还是以某种方式得不到它。对我来说,这一直是一个黑暗的领域,我正在开始理解,但我只是需要最后的推动。