0

可能重复:
JavaScript 中的日期之间的差异

我发现自己在 javascript 砖墙上。

我想在两个不同的日子里找到两次之间的差异(以小时和分钟为单位)。

我可以为每个时间生成小时、分钟和星期几,但无法弄清楚如何实现一个函数来检查下一次还有多长时间。

例子:

如果是周五的 16:00,而下一次是周一的 13:00,则输出将是 69 小时 0 分钟。

有人对如何最好地实现这一点有任何想法吗?

注意我大量使用 Google Closure。

4

2 回答 2

1
var yourTimeStart = 'Friday 16:00'; //Your input
var yourTimeStop = 'Monday 13:00'; //Your input


var days = Array("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday");

var differenceDays = days.indexOf(yourTimeStop.split(" ")[0]) - days.indexOf(yourTimeStart.split(" ")[0]);
if (days.indexOf(yourTimeStart.split(" ")[0]) > days.indexOf(yourTimeStop.split(" ")[0])) differenceDays = differenceDays + 7;

var timeStart = yourTimeStart.split(" ")[1];
var timeStop = yourTimeStop.split(" ")[1];

var differenceHours = timeStop.split(":")[0] - timeStart.split(":")[0];
var differenceMins = timeStop.split(":")[1] - timeStart.split(":")[1]

var resultHours = differenceDays*24 + differenceHours;;


if (differenceMins < 0) {
    resultHours--;
    differenceMins = 60 + differenceMins; // differenceMins is negative
}

if (resultHours < 0) resultHours = resultHours + 7*24; //(this is if a you calculate the time between for example Monday 16:00 and Monday 12:00)

document.write(resultHours + " hour(s) and " + differenceMins + " minutes."); //output
于 2012-12-27T11:58:58.823 回答
0

例如 :

var dte = new DateTime(2012, 12, 26,1,0,0);
var dte2 = new DateTime(2012, 12, 27, 18, 5, 0);

var totalHours = (int) dte2.Subtract(dte).TotalHours;
var totalMin = dte2.AddHours(-totalHours).Subtract(dte).TotalMinutes;


Console.WriteLine(totalHours.ToString());
Console.WriteLine(totalMin.ToString());
于 2012-12-27T11:59:50.693 回答