我正在尝试比较两个日期时间值,因为我想要做的是检查时间是否过去了
我试图使用两种方法。使用函数isBefore
for (var i = 0; i < vm.conferencesArray.length; i++) {
if (moment(vm.conferencesArray[i].fecha).format('MMMM Do YYYY') == moment().format('MMMM Do YYYY')) {
var a = moment('2016-03-12 ' + horaActual[4]).format('MMMM Do YYYY, h:mm:ss a');
var b = moment('2016-03-12 ' + vm.conferencesArray[i].horaInicio).format('MMMM Do YYYY, h:mm:ss a');
console.log(a.isBefore(b));
} else {
console.log("the event is not today")
}
}
并使用if,但它没有用
for (var i = 0; i < vm.conferencesArray.length; i++) {
if (moment(vm.conferencesArray[i].fecha).format('MMMM Do YYYY') == moment().format('MMMM Do YYYY')) {
if (moment('2016-03-12 ' + horaActual[4]).format('MMMM Do YYYY, h:mm:ss a') > moment('2016-03-12 ' + vm.conferencesArray[i].horaInicio).format('MMMM Do YYYY, h:mm:ss a')) {
console.log("next conference");
} else {
console.log("previous conference");
}
} else {
console.log("the conference is not today");
}
}
答案 0 :(得分:0)
你在做......
moment(s).format(f)
Thate使用给定的输出格式创建字符串。在普通的JS字符串上没有isBefore
函数,因此您将收到错误。
如果您尝试指定输入字符串的格式,即:
moment(s, f)
然后您将拥有一个moment
对象,您可以调用isBefore
以及其中存在的其他函数。
此外,在检查两个值是否在同一天时,我会使用startOf('day')
而不是格式化字符串。