繁体   English   中英

如何使用Momentjs diff比较2个日期

[英]How to compare 2 dates using Momentjs diff

我想比较2个日期。 如果收到的日期是在当天(今天)之前,我必须删除属性@availabilityBeginDate但如果收到的日期是在当天之后,我必须保存它。 我是用CoffeeScript写的。

我想用Moment.js和diff做到这一点。 这是我尝试的代码,但它不起作用,我无法弄清楚为什么。

if (moment(moment(getCurrentDate()).diff(@availabilityBeginDate)).format("DD MMMM YYYY") < 0) 
    delete @availabilityBeginDate

这是getCurrentDate方法:

getCurrentDate:() ->
  today = new Date
  dd = today.getDate()
  mm = today.getMonth() + 1
  yyyy = today.getFullYear()
  if dd < 10
    dd = '0' + dd
  if mm < 10
    mm = '0' + mm
  today = dd + ' ' + mm + ' ' + yyyy
  return today

以下是我保存@availabilityBeginDate

bidDispoDetails.rows.push({label: 'Début', value: moment(@availabilityBeginDate).format("DD MMMM YYYY")}) if @availabilityBeginDate?

format方法设置输出的格式。 要提供解析格式,请在对构造函数的调用中提供它。

我认为你在寻找的是合乎逻辑的步骤:

 var availabilityBeginDate = '10 10 2017'; var format = 'DD MM YYYY'; var today = moment().startOf('day'); var begin = moment(availabilityBeginDate, format); if (today.diff(begin) < 0) { console.log(today.format(format) + ' is before ' + begin.format(format)); } else { console.log(today.format(format) + ' is after ' + begin.format(format)); } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.1/moment.min.js"></script> 

如果你愿意,你可以将所有这些组合在一起, isAfter方法比diff更具语义:

 var availabilityBeginDate = '10 10 2017'; if (moment().startOf('day').isAfter(moment(availabilityBeginDate, 'DD MM YYYY'))) { console.log('After'); } else { console.log('Before'); } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.1/moment.min.js"></script> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM