【发布时间】:2019-06-24 14:05:11
【问题描述】:
我正在尝试使用以下代码计算 Javascript 中两个日期之间的天数。
console.log(self.StartDate());
var start = moment(self.StartDate(), "YYYY-MM-DD");
console.log(start);
console.log(self.EndDate());
var end = moment(self.EndDate(), "YYYY-MM-DD");
console.log(end);
var duration = moment.duration(start.diff(end));
console.log(duration);
//no of days between start and end
console.log(duration.asDays());
控制台输出:
Thu Jun 20 2019 01:00:00 GMT+0100 (British Summer Time)
n {_isAMomentObject: true, _i: Thu Jun 20 2019 01:00:00 GMT+0100 (British Summer Time), _f: "YYYY-MM-DD", _isUTC: false, _pf: {…}, …}_d: Wed Aug 19 0020 00:00:00 GMT-0001 (British Summer Time) {}_f: "YYYY-MM-DD"_i: Thu Jun 20 2019 01:00:00 GMT+0100 (British Summer Time) {}_isAMomentObject: true_isUTC: false_locale: r {_ordinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: ƒ, _abbr: "en", _ordinalParseLenient: /\d{1,2}(th|st|nd|rd)|\d{1,2}/}_pf: {empty: false, unusedTokens: Array(0), unusedInput: Array(3), overflow: 1, charsLeftOver: 49, …}__proto__: Object
Mon Jun 24 2019 15:10:41 GMT+0100 (British Summer Time)
n {_isAMomentObject: true, _i: Mon Jun 24 2019 15:10:41 GMT+0100 (British Summer Time), _f: "YYYY-MM-DD", _isUTC: false, _pf: {…}, …}
Ea {_milliseconds: -126230400000, _days: 0, _months: 0, _data: {…}, _locale: r}
-1461
self.StartDate() 是 20/06/2019 和 self.EndDate() 是 24/06/2019 所以我很高兴警报显示 4 但它显示 -1461。
为什么会这样?
【问题讨论】:
-
停止使用警报。使用
console.log并查看开发工具控制台选项卡中的输出。也就是说,您不会显示使用您声称使用的日期的代码,那么您能否显示 moment.js 在这两个日期中的想法(使用 console.log 然后复制输出)? -
20/06/2019不是"YYYY-MM-DD" -
@Mike'Pomax'Kamermans 修改了 OP
-
你从哪里得到日期数据?
标签: javascript momentjs