javascript - 如何使用 Momentjs diff 比较两个日期

标签 javascript date coffeescript momentjs datetime-comparison

我正在尝试比较 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>

关于javascript - 如何使用 Momentjs diff 比较两个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46882491/

相关文章:

javascript - CoffeeScript 窗口

javascript - Jquery .html() 不适用于 localStorage

javascript - 通过 JavaScript 阻止过去的日期?安全的?

java - 尝试将 GregorianCalendar 变量设置为另一个 GregroianCalendar 变量 + 4 年

javascript - Coffeescript AngularJS服务,无法使用@符号访问成员函数

javascript - 循环运行对象属性函数

c# - 从 Razor 文件中定义的 href 调用 Javascript 函数

javascript - javascript中concat的语法

javascript - 如何在 Chrome/Firefox 中结合自动对焦选择页面加载时输入的所有文本

sql - 如何在sql server 2008中获取一周的第一天和一周的最后一天?