【发布时间】:2018-04-03 14:18:32
【问题描述】:
我正在尝试比较 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?
【问题讨论】:
-
代码分隔符应该用于实际代码,而不仅仅是突出显示单词或短语。
-
我不明白你在问什么@RobG
-
什么都不问,只是评论。 getCurrentDate 函数返回一个非标准字符串,您将其传递给 moment.js 而不告诉它格式。可能会引发您未报告的错误。第一个表达式可能解析为
'Invalid Date' < 0。 -
通过
.format("DD MM YYYY")我不是设置了两个日期的格式吗?我应该在两个日期都做.format("DD MM YYYY")还是已经在getCurrentDate? -
不,设置输出格式。解析格式在对 moment 的调用中设置:
moment(getCurrentDate(), 'DD MM YYYY')但如果打算为一天的开始创建一个日期,那么moment().startOf('day')的效率要高得多。
标签: javascript date coffeescript momentjs datetime-comparison