JavaScript计算两个日期之间的差异yy-mm-dd
我已经阅读了很多关于计算javascript日期差异的文章和问题,但是我找不到它们的格式。JavaScript计算两个日期之间的差异yy-mm-dd
我不需要小时,分钟或相信它或毫秒......我只需要几天。我正在检查以确保有一天发生在同一天或之后。
日期格式2010-10-05
我尝试这样做,但我得到的是楠:
var diff = Math.floor((Date.parse(end_date) - Date.parse(start_date))/86400000);
我理解你确实不需要知道多少天除了这两天,你只需要知道他们是否是同一日期,如果是晚一点的话。在这种情况下,经常使用字符串比较可以告诉您,只要您始终使用格式“yyyy-mm-dd”,两位数的月份和两位数的天数;例如'2010-10-05'<'2010-10-16'。
你首先要分析的日期。但建在Date.parse
可能无法识别它。起始于以下:
var dateStr = "2010-10-05";
var regex = /(\d{4})-(\d{2})-(\d{2})/.exec(dateStr);
var date = new Date(regex[1], regex[2] - 1, regex[3]); //Tue Oct 05 2010 00:00:00 GMT+0200 (CEST)
有Date
对象的两个实例,你可以反正你喜欢比较。然而,你的条件检查是否有两个日期是在24小时内,我想这不是你想要的,因为你的日期没有时间戳...
感谢您的帮助。 – Oseer
我希望这会帮助你在Firefox
t1="2010-12-20"; //date1
t2="2010-12-30"; //date2
var one_day=1000*60*60*24;
var x=t1.split("-");
var y=t2.split("-");
var date1=new Date(x[0],(x[1]-1),x[2]);
var date2=new Date(y[0],(y[1]-1),y[2]);
var month1=x[1]-1;
var month2=y[1]-1;
_Diff=Math.ceil((date2.getTime()-date1.getTime())/(one_day));
alert(_Diff);
正常工作:
var start_date = "2010-10-05"
var end_date = "2010-10-15"
var diff = Math.floor((Date.parse(end_date) - Date.parse(start_date))/86400000);
alert(diff)
but perhaps this is safer:
var diff = Math.floor(
(
Date.parse(
end_date.replace(/-/g,'\/')
) - Date.parse(
start_date.replace(/-/g,'\/')
)
)/86400000);
alert(diff)
简简单单就,切出的第一10chars代替 ' - ' 与' '然后以end_date开始日期。
这是一个丑陋的方式来做到这一点,但是很容易,所以它在任何语言的作品;)
男人,我只是如此习惯JavaScript是如此过分complecated我甚至不期待一个简单的答案。谢谢! – Oseer
不客气! – ruakh