Javascript 为什么时差给了我两种不同的结果
这段代码应该是0:40分钟,但一方面给我0:20分钟,另一方面给我1:40分钟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 =
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”:“)+分钟);
}
因为日期减法不可交换?因为日期减法不可交换?