momentjs - 使用用户给定的字符串来检查日期差异

时间:2016-07-08 16:51:38

标签: javascript date momentjs

我正在编写一个简单的Chrome扩展程序。

我需要检查今天和用户指定日期之间的区别。

我的用户将日期写为sudo apt-get install g++-4.7,并将其保存在localstorage中。

然后我使用这段代码来检查差异:

dd/mm/yyyy

控制台日志返回:

var start = moment(new Date(dateFromLocalStorage));
console.log(start);
var today = moment(new Date()).format("DD/MM/YYYY");
counter.innerHTML = start.diff(today, 'days');

是否可以使用我的用户提供的日期?

由于日期无效,结果为NaN。

感谢您对此的任何支持。

4 个答案:

答案 0 :(得分:2)

几乎。

var start = moment(dateFromLocalStorage, "DD/MM/YYYY");
var today = moment();
var difference = today.diff(start, 'days');

答案 1 :(得分:1)

只需更改

var start = moment(new Date(dateFromLocalStorage));

var start = moment(dateFromLocalStorage,"DD/MM/YYYY");

参考文献: http://momentjs.com/docs/#/parsing/string-format/

答案 2 :(得分:0)

var dateFromLocalStorage = "15/01/2014";
var start = moment(dateFromLocalStorage, "DD/MM/YYYY");
console.log(start);
var today = moment(new Date());
var diff = today.diff(start, 'days');
console.log(diff, 'days');
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>

看看这个,你需要将日期解析为Date标准或使用时刻

答案 3 :(得分:0)

尝试使用此代码

var a = moment('15/01/2014', 'DD/MM/YYYY');
var b = moment(moment(new Date()).format('DD/MM/YYYY'), 'DD/MM/YYYY');
var days = b.diff(a, 'days');
alert(days);

以下是jsFiddle