此Meteor服务器代码解析html并获取类似" 09/03/2017"并将其保存到mongodb集合中,如下所示:
const date = ResObj.$(this).next().html().trim();
const dArr = date.split('/');
const dObj = new Date(parseInt(dArr[2]), parseInt(dArr[1]) - 1, parseInt(dArr[0]));
myCol.update({_id:'abc', {$set:{date: dObj}}});
稍后我需要在两者之间返回文件并包括2个日期,如09/03/2017。 正在从2017-03-09格式化客户端收到搜索字符串。
myCol.find({date: {$gte: start, $lte: end}})
还安装了Moment.js。我怎么能这样做,使输出在甲酸DD / MM / YYYY? THX
答案 0 :(得分:0)
您要做的是将日期存储为日期对象,这样您就可以在数据库中对其进行查询。
要使用moment执行此操作,您需要将字符串解析为moment对象。这告诉moment
使用提供的日期创建日期对象并告诉它日期的格式,以便知道哪些是日期/月等。
const dateObj = moment(date, "DD/MM/YYYY").toDate()
然后,您正在使用时刻toDate()
函数将其转换为可以存储在数据库中的日期对象。
将其保存到数据库
myCol.update({_id:'abc', { $set:{ date: dateObj }}});
然后,当您回到客户端时,您可以再次使用
格式化输出日期 const formattedDate = moment(dateFromDB).format("DD/MM/YYYY");
基本上,您总是希望将日期作为日期对象存储在数据库中,这样它们可以在查询和排序等中使用。您只想在客户端上使用format()
将它们转换回字符串