此Meteor服务器代码尝试查找给定日期字符串DD / MM / YYYY是否在过去14天内。
let date = '03/05/2017'; //DD/MM/YYYY
let dayStart = moment().subtract(14, 'days').format('DD/MM/YYYY');
if (moment(date).isBefore(dayStart)) {
console.log('before');
} else {
console.log('after');
}
这可行,但我收到控制台错误:
弃用警告:提供的值不是公认的RFC2822或ISO格式。时刻构造回落到js Date(),这在所有浏览器和版本中都不可靠。不鼓励使用非RFC2822 / ISO日期格式,并将在即将发布的主要版本中删除。有关详细信息,请参阅http://momentjs.com/guides/#/warnings/js-date/。
有任何建议如何修复它以便它没有错误吗? THX
答案 0 :(得分:2)
您计算一个日期,将其写入String,以非标准格式(在解析时)非标准格式解析字符串中的相同日期,并将其与未指定非标准格式的另一个日期进行比较。 / p>
相反,pass a parse format并与Moments进行比较,而不是字符串:
let date = '03/05/2017'; //DD/MM/YYYY
let dateAsMoment = moment(date, 'DD/MM/YYYY'); // specified parsed date
let dayStart = moment().subtract(14, 'days'); // 14 days before now, as a Moment
if (dateAsMoment.isBefore(dayStart)) {
console.log('before');
} else {
console.log('after');
}