使用javascript时,两个日期之间的差异始终为零天
嗨,我想知道两次约会之间的差异,但我一直得到0作为答案,任何人都知道为什么请帮助。我的代码是这样的使用javascript时,两个日期之间的差异始终为零天,javascript,date,Javascript,Date,嗨,我想知道两次约会之间的差异,但我一直得到0作为答案,任何人都知道为什么请帮助。我的代码是这样的 var d1 = "2015-04-30"; var d2 = "2015-04-14"; var startDay = new Date(d1); var endDay = new Date(d2); var millisecondsPerDay = 1000 * 60 * 60 * 24; var millisBetween = startDay.getTime()
var d1 = "2015-04-30";
var d2 = "2015-04-14";
var startDay = new Date(d1);
var endDay = new Date(d2);
var millisecondsPerDay = 1000 * 60 * 60 * 24;
var millisBetween = startDay.getTime() - endDay.getTime();
var days = millisBetween / millisecondsPerDay;
//If I use df1 and df2 I am getting 0
var jsondate1 = new Date(getData.startDate).toISOString();
var jsondate2 = new Date(getData.startDate).toISOString();
var date = new Date(jsondate1);
var dates = new Date(jsondate2);
var df1 = date.getFullYear() + '-' + (date.getMonth()+1) + '-'
+date.getDate() ;
var df2 = dates.getFullYear() + '-' +(dates.getMonth()+1)
+ '-' +dates.getDate() ;
//If I am using the below two lines the answer is 16 but if I am using the above d1 and d2 the answer is zero
var d1 = "2015-4-30";// the date here is made up by console.debug(df1 )
var d2 = "2015-4-14"; // the date here is made up by console.debug(df2 )
我不知道我哪里做错了请看片段-它显示了16。
var d1=“2015-04-30”;
var d2=“2015-04-14”;
var startDay=新日期(d1);
var endDay=新日期(d2);
var毫秒Sperday=1000*60*60*24;
var millisBetween=startDay.getTime()-endDay.getTime();
var天数=毫秒间隔/毫秒天数;
警报(天)代码>它应该按原样工作,但您可以尝试在不调用getTime()的情况下减去日期:
问题更新后:
jsondate1和jsondate2都是使用相同的日期(getData.startDate)创建的,因此差异为0:
var jsondate1 = new Date(getData.startDate).toISOString();
var jsondate2 = new Date(getData.startDate).toISOString();
如果你只想要日期差异。那么最简单的方法就是
var d1 = "2015-04-30";
var d2 = "2015-04-14";
Math.floor(( Date.parse(d1) - Date.parse(d2) ) / 86400000);
不,我得到0作为我的答案,我不知道ydays=16。你从哪里得到0?您能告诉我们您是如何看待结果的吗?console.debug(days)=0确认days
变量的16
。如果我通过赋值使用d1和d2,则此操作没有意义,但如果我在某处得到了正确的答案,则得到0我不确定您是如何收到日期的?作为字符串?它们的格式是否可以被Date()构造函数正确解析?console.debug(df1)=2015-04-30和console.debug(df2)=2015-04-14我需要看看df1和df2是如何提供给您的。你能提供一些代码在链的上游一点吗?值得注意的是,df1不是与d1相同的变量吗?@ReginWaldted jsondate1和jsondate2都是使用相同的日期(getData.startDate)创建的,因此差异是0.0。添加到我的问题控制台上。调试(df1)=2015-04-30和控制台。调试(df2)=2015-04-14
var d1 = "2015-04-30";
var d2 = "2015-04-14";
Math.floor(( Date.parse(d1) - Date.parse(d2) ) / 86400000);