Javascript 如何计算两个日期之间的时间差?

Javascript 如何计算两个日期之间的时间差?,javascript,Javascript,由于我是javascript新手,所以我想问这个问题,如何在小时内找出两个日期之间的差异。我成功地计算了差异,但当我以am/PM格式给出时间时,它会将我的输出作为NAN,请检查我在下面发布的代码,并提前感谢: 函数计算时间(){ var d2=新日期('2018-02-12 03:00:00 AM'); var d1=新日期('2018-02-10 08:00:00 AM'); var秒数=(d2-d1)/1000; var小时=秒/3600; 控制台日志(小时); } 计算时间()只需将日期

由于我是javascript新手,所以我想问这个问题,如何在小时内找出两个日期之间的差异。我成功地计算了差异,但当我以am/PM格式给出时间时,它会将我的输出作为NAN,请检查我在下面发布的代码,并提前感谢:

函数计算时间(){
var d2=新日期('2018-02-12 03:00:00 AM');
var d1=新日期('2018-02-10 08:00:00 AM');
var秒数=(d2-d1)/1000;
var小时=秒/3600;
控制台日志(小时);
}

计算时间()只需将日期对象彼此相减即可

var hours = Math.abs(date1 - date2) / 36e5;

减法返回两个日期之间的差值(以毫秒为单位)。36e5是60*60*1000的缩写,因此除以36e5将得到小时。

Firefox将返回格式为
YYYY-MM-DD HH:MM:SS AM的无效日期。

一个选项是在
newdate()上分别使用年、月、日

新日期(年、月、日、时、分、秒), 毫秒]]]

比如:

函数计算时间(){
var formatDate=函数(dt){
设n=dt.分裂(/\D/).拼接(0,6);
n[3]=dt.slice(-2)=='PM'?(+n[3]+12):n[3];//更新时间
n[1]=n[1]-1;//更新月份
返回n;
}
var d2=新日期(…格式日期('2018-02-12 03:00:00 AM');
var d1=新日期(…格式日期('2018-02-10 08:00:00 AM');
var秒数=(d2-d1)/1000;
var小时=秒/3600;
控制台日志(小时);
}

计算时间()
对我也有用,这不是jQuery,这是Javascript,它仍然以NaN的形式提供输出如果您的代码提供NaN,那么您使用的代码与您在这里发布的代码不同。你在这里粘贴的代码很有效-请看fiddle.Gives NaN在Android Firefox上为我提供它给了我从日期中删除AM的时间,但我需要AM/PM格式的时间,这就是OP的基本功能。该问题最初的解析结果不正确。只使用
dt.split(/\D/)
简单得多。另外,h是一个字符串,所以
h+12
将进行串联,而不是加法,
+h+12
将解决这个问题。好主意。谢谢@RobG