我试图计算直到特定日期的剩余天数。我知道有上百万种不同的方法和教程,但是我想自己编写一个代码。问题在于该函数的输出为“ NaN”。非常感谢您的帮助。
这是我的代码:
var daysLeft = function(input) {
var num = '';
var date = [];
var x = 0;
for (i = 0; i < input.length; i++) {
if (!isNaN(input.charAt(i))) {
num += input.charAt(i);
}
else {
date[x] = parseInt(num, 10);
x++;
}
}
var inputDate = new Date(date[2], date[1], date[0]);
var today = new Date();
var timeDiff = Math.abs(inputDate.getTime() - today.getTime());
return Math.ceil(timeDiff / (1000*3600*24));
};
daysLeft("11.12.2014");
顺便说一句:我写了这段代码,因为Date()函数适用于日期的美国格式(MM / dd / YYYY),而不适用于UTC日期。我也知道有Date.UTC()函数,但是无论如何。我只是想自己转几天又几天。
解析num
设置时date[x]
,需要重置num
为''
。
...
else {
date[x] = parseInt(num, 10);
x++;
num = '';
}
您可能会考虑String.split()
在各个期间使用来分隔输入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句