当我使用diff时,Moment JS会给出错误的日期

时间:2014-12-12 06:01:16

标签: javascript jquery momentjs

我一直在努力使用片刻JS获得两个日期的差异。

test1 = new Date("01/12/2015")
test2 = new Date("12/12/2014")


get_diff = moment.duration(moment(test1,"DD/MM/YYYY").diff(moment(test2,"DD/MM/YYYY")))
result_diff = get_diff.asDays()
console.log result_diff

它给出:365。它应该给31天。

4 个答案:

答案 0 :(得分:1)

您无需使用durations,也无需转换为“DD / MM / YYYY”格式。只需使用带有“days”的diff方法作为第二个参数:

var test1 = new Date("01/12/2015");
var test2 = new Date("12/12/2014");

var result_diff = moment(test1).diff(moment(test2), "days"); // 31

答案 1 :(得分:1)

您应该使用字符串本身实例化时刻对象:

var test1 = moment('01/12/2015', 'MM/DD/YYYY');
var test2 = moment('12/12/2014', 'MM/DD/YYYY');

var get_diff = moment.duration(test1.diff(test2));
var result_diff = get_diff.asDays();

答案 2 :(得分:0)

我认为您应该更改代码以获得差异

var date1 = new Date("01/12/2015")
var date2 = new Date("12/12/2014")
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));

答案 3 :(得分:0)

你写它的方式,你不应该使用JS日期对象,你有月和日切换。

test1 = "01/12/2015";
test2 = "12/12/2014";

get_diff = moment.duration(moment(test1,"MM/DD/YYYY").diff(moment(test2,"MM/DD/YYYY")))
result_diff = get_diff.asDays()
console.log(result_diff)