Javascript 日间时差
可能重复:Javascript 日间时差,javascript,time,google-closure,Javascript,Time,Google Closure,可能重复: 我发现自己在一堵砖墙前 我想找出两天中两次之间的差异(以小时和分钟为单位) 我可以为每一天生成一周中的小时、分钟和天,但无法计算出如何实现一个功能,该功能将检查到下一次还有多长时间 例如: 如果是星期五16:00,下一次是星期一13:00,输出将是69小时零分 有人对如何最好地实现这一点有什么想法吗 注意,我正在大量使用Google Close。var yourTimeStart='Friday 16:00'//你的意见 var yourTimeStart = 'Friday 16
我发现自己在一堵砖墙前 我想找出两天中两次之间的差异(以小时和分钟为单位) 我可以为每一天生成一周中的小时、分钟和天,但无法计算出如何实现一个功能,该功能将检查到下一次还有多长时间 例如: 如果是星期五16:00,下一次是星期一13:00,输出将是69小时零分 有人对如何最好地实现这一点有什么想法吗 注意,我正在大量使用Google Close。
var yourTimeStart='Friday 16:00'//你的意见
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
var yourTimeStop='星期一13:00'//你的意见
var天数=数组(“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”);
var differenceDays=days.indexOf(yourTimeStop.split(“”[0])-days.indexOf(yourTimeStart.split(“”[0]);
如果(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=不同的天数*24+不同的小时数;;
if(差分最小值<0){
结果——;
differenceMins=60+differenceMins;//differenceMins为负
}
如果(resultHours<0)resultHours=resultHours+7*24//(这是如果您计算星期一16:00和星期一12:00之间的时间)
写下(结果小时数+小时数+差异分钟数+分钟数)//输出
例如:
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());
如果您不介意使用其他库,那么请分享一些代码。矩.js对于解决您所述的问题具有很好的功能。关于Google Closure库,请查看API参考:(但快速浏览之后,我没有找到任何计算差异的方法).输入值是日期时间还是模式?即,“星期五16:00”是指“任何星期五16:00”(模式)还是“2012-12-28 16:00:00 CEST”(日期时间)?