我必须检查两个日期是否相差超过两天。例如,2014年1月14日和2014年1月15日将符合标准,因为只有一天的差异,但2014年1月14日和01/18/2014不会,因为后者有4天差异。日期是字符串格式,所以我尝试了各种数据,但无法成功。总而言之,我想知道是否可以创建一个if语句,它减去字符串格式的两个日期的值,如果值大于' n'则给出错误。谢谢!
答案 0 :(得分:1)
一种解决方案是使用简单的字符串解析为每个日期创建一个Javascript Date对象(http://www.w3schools.com/js/js_obj_date.asp),使用.getTime()函数获取以毫秒为单位的值,并检查它是否大于1000 x 60 x 60 x 24 x 2。
答案 1 :(得分:0)
尝试
new Date("MM/DD/YYYY") - new Date("MM/DD/YYYY")
这将以毫秒为单位返回一个数字。
答案 2 :(得分:0)
// https://gist.github.com/remino/1563878
// Converts millseconds to object with days, hours, minutes ans seconds.
function convertMS(ms) {
var d, h, m, s;
s = Math.floor(ms / 1000);
m = Math.floor(s / 60);
s = s % 60;
h = Math.floor(m / 60);
m = m % 60;
d = Math.floor(h / 24);
h = h % 24;
return { d: d, h: h, m: m, s: s };
};
var start_date = '04/15/2014';
var end_date = '04/16/2014';
var diff = convertMS(Date.parse(end_date) - Date.parse(start_date));
if(diff.d > 1) {
console.log('The difference is more than one day!');
}
else {
console.log('The difference is just one day and therefore accepted!');
}
请参阅js小提琴:http://jsfiddle.net/E7bCF/11/
查看js小提琴的一天以上差异:http://jsfiddle.net/E7bCF/9/