Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 日间时差_Javascript_Time_Google Closure - Fatal编程技术网

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”(日期时间)?