JavaScript中am/pm格式下两个时间的差异

3

我希望能够在jquery中找到以AP/PM格式显示的两个时间之间的差异。

我已经尝试了许多代码,但无法找到任何解决方案。

以下是我的其中一段代码:

var timeStart = new Date("01/01/2007 " + "05.00 AM").getHours();
var timeStartmin = new Date("01/01/2007 "  + "05.00 AM").getMinutes();
var timeEnd = new Date("01/01/2007 " + "10.30 PM").getHours();
var timeEndmin = new Date("01/01/2007 " + "10.30 PM").getMinutes();

timeStart     =   timeStart+"."+timeStartmin;
timeEnd     =   timeEnd+"."+timeEndmin;

var hourDiff = timeEnd-timeStart;    
alert(hourDiff);

但它不能正常工作。有人可以给我建议吗?

1
valuestop 里面是什么? - Cerlin
2个回答

10

您的日期初始化有误。正确的方法如下:

var timeStart = new Date("01/01/2007 " + "05:00 AM");
var timeEnd = new Date("01/01/2007 " + "10:30 PM");

var diff = (timeEnd - timeStart) / 60000; //dividing by seconds and milliseconds

var minutes = diff % 60;
var hours = (diff - minutes) / 60;

然后你可以按照自己的意愿使用小时分钟


0
首先,Date() 不会接受 "01/01/2007 " + "05.00 PM",它将在 getHours() 和其他方面返回 NaN。因此,您需要传递
var timeStart = new Date("01/01/2007 " + "05:00:00").getHours();

然后执行这个操作:

var diffhour     =   parseInt(timeEnd)-parseInt(timeStart);
var diffmin     =   parseInt(timeStartmin)-parseInt(timeEndmin);

var Diff = diffhour+":"+diffmin;    
alert(Diff);

什么是解决方案? - John Mathew
我应该告诉即使timeStart和timeEnd本身都是NaN。 - Suchit kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接