如何使用 Momentjs diff 比较两个日期
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>
我正在尝试比较 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>