将日期与momentJs进行比较

时间:2017-05-03 11:17:09

标签: javascript meteor momentjs

此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

1 个答案:

答案 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');
}
相关问题