我正在使用Moment.js
来比较日期,但我得到了一些奇怪的东西。我的代码:
var extraStackData = function (data, from_date1, end_date1) {
var result = {};
for (var i in data) {
var row = data[i];
if (typeof result[row['know_source']] == 'undefined') {
result[row['know_source']] = {};
}
result[row['know_source']][row['create_date']] = parseInt(row['sum']);
}
// console.log(result);
console.log(from_date1);
console.log(end_date1);
console.log(from_date1 > end_date1);
var cur_date = from_date1;
console.log(cur_date);
console.log(cur_date.isAfter(end_date1));
for (var source in result) {
for (var cur_date = from_date; cur_date.isBefore(end_date); cur_date.add("days", 1)) {
console.log(cur_date);
if (typeof result[source][cur_date] == 'undefined') {
result[source][cur_date] = 0;
}
}
// console.log(result[source])
}
结果如下:
根据输出,似乎变量from_date='2014-10-1'
大于end_date='2014-11-18'
。有人可以帮助我吗?
更新:我发现了更奇怪的事情。以下代码:
console.log(from_date);
console.log(end_date);
var days = from_date.diff(end_date, 'days');
console.log(days);
其中我使用diff来获取间隔天数,给出以下输出:
答案 0 :(得分:0)
我遇到的问题是我的moment.js版本是2.12.0 似乎问题是由格式化方法引起的:
moment(....).format("YYYY-MM-DD");
我使用的是接近你的格式“YYYY-M-D”,然后我的比较结果表明早期时间大于后期时间。
在我初始化时刻对象时删除格式方法后,
比较工作正常。
答案 1 :(得分:0)
如果输出出错,则只需使用矩函数即可,而无需转换为特定格式。
moment('your_date').format();