Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript时,两个日期之间的差异始终为零天_Javascript_Date - Fatal编程技术网

使用javascript时,两个日期之间的差异始终为零天

使用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()

嗨,我想知道两次约会之间的差异,但我一直得到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() - 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);