Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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_Time_Datediff - Fatal编程技术网

Javascript 为什么时差给了我两种不同的结果

Javascript 为什么时差给了我两种不同的结果,javascript,time,datediff,Javascript,Time,Datediff,这段代码应该是0:40分钟,但一方面给我0:20分钟,另一方面给我1:40分钟 var t1 = '12:05'.split(':'), t2 = '12:45'.split(':'); var d1 = new Date(0,0,0,t1[0],t1[1]), d2 = new Date(0,0,0,t2[0],t2[1]); document.write(d1+'<BR>'); document.write(d2+'<BR>'); var d =

这段代码应该是0:40分钟,但一方面给我0:20分钟,另一方面给我1:40分钟

var t1 = '12:05'.split(':'),
    t2 = '12:45'.split(':');

var d1 = new Date(0,0,0,t1[0],t1[1]),
    d2 = new Date(0,0,0,t2[0],t2[1]);

document.write(d1+'<BR>');
document.write(d2+'<BR>');

var d = new Date(d1-d2);
// should give 0:40 minutes
document.write(d.getHours() + ":" + d.getMinutes() + '<BR>');
// 0:20 minutes
var d = new Date(d2-d1);
document.write(d.getHours() + ":" + d.getMinutes() + '<BR>');
// 1:40 minutes
var t1='12:05'。拆分(':'),
t2='12:45'。拆分(':');
var d1=新日期(0,0,0,t1[0],t1[1]),
d2=新日期(0,0,0,t2[0],t2[1]);
文件。写入(d1+“
”); 写(d2+“
”); var d=新日期(d1-d2); //应该是0:40分钟 document.write(d.getHours()+”:“+d.getMinutes()+”
”; //0:20分钟 var d=新日期(d2-d1); document.write(d.getHours()+”:“+d.getMinutes()+”
”; //1点40分

有什么想法吗?

减去两个日期可以得到它们之间的毫秒数。将其传递给
newdate
将为您提供一个新的日期对象,该对象距离历元有许多毫秒

如果您想要两次约会之间的分钟数,只需执行以下操作:

(d1-d2)/(60*1000);

减去两个日期可以得到它们之间的毫秒数。将其传递给
newdate
将为您提供一个新的日期对象,该对象距离历元有许多毫秒

如果您想知道两个日期之间的分钟数,请执行以下操作:

(d1-d2)/(60*1000);

您可以编写自己的函数来计算两个日期的差异,并以HH:MM格式显示结果

因为Javascript在时间戳中返回两个日期差&如果我们使用这个时间戳来获取JS date对象,它将创建一个全新的日期

以下是示例dateDiff函数:

function dateDiff(){
    var start = '12:05'.split(':'), // hardcoded value for sample
    end = '12:45'.split(':');      // you can pass start and end value as parameter to dateDiff function.

    var startDate = new Date(0, 0, 0, start[0], start[1], 0);
    var endDate = new Date(0, 0, 0, end[0], end[1], 0);
    var diff = endDate.getTime() - startDate.getTime();
    var hours = Math.floor(diff / 1000 / 60 / 60);
    diff -= hours * 1000 * 60 * 60;
    var minutes = Math.floor(diff / 1000 / 60);

    return ( (hours < 9 ? "0" : "") + hours + ":" + (minutes < 9 ? "0" : "") + minutes);
}
函数dateDiff(){ var start='12:05'。拆分(':'),//样本的硬编码值 end='12:45'。split(':');//您可以将起始值和结束值作为参数传递给dateDiff函数。 var startDate=新日期(0,0,0,开始[0],开始[1],0); var endDate=新日期(0,0,0,结束[0],结束[1],0); var diff=endDate.getTime()-startDate.getTime(); var小时=数学楼层(差异/1000/60/60); 差异-=小时*1000*60*60; var分钟=数学楼层(差异/1000/60); 返回((小时<9?“0”:“)+小时+”:“+(分钟<9?“0”:“)+分钟); }
您可以编写自己的函数来计算两个日期的差值,并以HH:MM格式显示结果

因为Javascript在时间戳中返回两个日期差&如果我们使用这个时间戳来获取JS date对象,它将创建一个全新的日期

以下是示例dateDiff函数:

function dateDiff(){
    var start = '12:05'.split(':'), // hardcoded value for sample
    end = '12:45'.split(':');      // you can pass start and end value as parameter to dateDiff function.

    var startDate = new Date(0, 0, 0, start[0], start[1], 0);
    var endDate = new Date(0, 0, 0, end[0], end[1], 0);
    var diff = endDate.getTime() - startDate.getTime();
    var hours = Math.floor(diff / 1000 / 60 / 60);
    diff -= hours * 1000 * 60 * 60;
    var minutes = Math.floor(diff / 1000 / 60);

    return ( (hours < 9 ? "0" : "") + hours + ":" + (minutes < 9 ? "0" : "") + minutes);
}
函数dateDiff(){ var start='12:05'。拆分(':'),//样本的硬编码值 end='12:45'。split(':');//您可以将起始值和结束值作为参数传递给dateDiff函数。 var startDate=新日期(0,0,0,开始[0],开始[1],0); var endDate=新日期(0,0,0,结束[0],结束[1],0); var diff=endDate.getTime()-startDate.getTime(); var小时=数学楼层(差异/1000/60/60); 差异-=小时*1000*60*60; var分钟=数学楼层(差异/1000/60); 返回((小时<9?“0”:“)+小时+”:“+(分钟<9?“0”:“)+分钟); }
因为日期减法不可交换?因为日期减法不可交换?