Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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_Jquery - Fatal编程技术网

Javascript 如何区分两次?

Javascript 如何区分两次?,javascript,jquery,Javascript,Jquery,我想得到两次之间的差异。第一个是当前时间对象,我使用javascript日期对象new date() 第二个是类似“20:30”的字符串。 假设当前时间是18:00,那么我只想得到这样的差值“还剩2小时30分钟。 感谢您提供的任何帮助。最简单的方法是使用能够很好地处理时间/日期操作的库。尝试以下方法: var date1 = new Date(2000, 0, 1, 20, 30); var date2 = new Date(2000, 0, 1, 18, 0); var diff = dat

我想得到两次之间的差异。第一个是当前时间对象,我使用javascript日期对象
new date()
第二个是类似“20:30”的字符串。 假设当前时间是18:00,那么我只想得到这样的差值“还剩2小时30分钟。
感谢您提供的任何帮助。

最简单的方法是使用能够很好地处理时间/日期操作的库。

尝试以下方法:

var date1 = new Date(2000, 0, 1, 20, 30);
var date2 = new Date(2000, 0, 1, 18, 0);

var diff = date1-date2;//milli seconds


var min = diff / 1000 / 60;
var r = min % 1;
var h=min/60;
var sec = Math.floor(r * 60);
if (sec < 10) {
    sec = '0'+sec;
}
    alert(min+'-'+ sec);
var date1=新日期(2000,0,1,20,30);
var date2=新日期(2000,0,1,18,0);
var diff=date1-date2;//毫秒
var最小值=差值/1000/60;
var r=最小值%1;
var h=min/60;
var sec=数学楼层(r*60);
如果(第10节){
秒='0'+秒;
}
警报(分钟+'-'+秒);

您可以使用
Date.Parse()
函数和字符串,例如
Date.Parse(“1970 1 1 20:30”)
来获取javascript日期时间,然后继续了解如何获取两个javascript日期对象之间的时间差


希望这有帮助!

利用
Date
对象中提供的函数

var origTime = '20:30'.split(':');
var dateA = new Date();
dateA.setHours(origTime[0]);
dateA.setMinutes(origTime[1]);
var dateB = new Date();
var hourDiff = Math.abs(dateA - dateB)/36e5;

以下是仅使用vanilla Js的方法:

var compareDate = new Date();
var timeParts = "20:30".split(":");
compareDate.setHours(Number(timeParts[0]));
compareDate.setMinutes(Number(timeParts[0]));
compareDate.setSeconds(0);
compareDate.setMilliseconds(0);

var diff = compareDate - new Date();
var diffInMinutes = Math.floor(diff / 1000 / 60);
var hours = Math.floor(diffInMinutes / 60);
var minutes = diffInMinutes % 60;

hours + " hours and " + minutes + " minutes left";
我们通过将秒和毫秒设置为0来“规范化”秒和毫秒,否则它们将与调用
newdate()
时的状态相同。

$(文档).ready(函数(){
函数计算时间(){
var valuestop=$(“选择[name='timestop']”)val();
var timeStart=new Date().getTime();//当前时间
var timeEnd=new Date(new Date().toJSON().slice(0,10)。replace(//-/g,'/')+''+valuestop)。getTime();//所选时间
console.log(timeStart+“”+timeEnd);
var hourDiff=timeEnd-timeStart;//单位为毫秒
var secDiff=hourDiff/1000;//在s中
var minDiff=hourDiff/60/1000;//分钟
var hDiff=hourDiff/3600/1000;//以小时为单位
var humanReadable={};
humanReadable.hours=数学地板(hDiff);
humanReadable.minutes=Math.round(minDiff-60*humanReadable.hours);
console.log(人类可读);//{hours:0,minutes:30}
$((“p”).html(“差异:小时:“+humanReadable.Hours+”分钟:“+humanReadable.Minutes”);
}
$(“选择”)。更改(计算时间);
计算时间();
});

上午12:00
凌晨1点
凌晨2点
凌晨三点
凌晨四点
上午五点
早上6点
上午7:00
上午8:00
上午9点
上午10:00
上午11:00
下午12:00
下午1:00
下午2:00
下午三点
下午四点
下午五点
下午六点
下午7:00
晚上八点
晚上九点
晚上10:00
晚上11:00

是否有任何方法可以使用可用的javascript日期函数实现这一点?@SKJajoriya是的,如果您愿意,可以使用
Date
解析日期,例如,请参阅此线程:只需比较两个日期并获得差异。我想您可以在此处阅读问题。可能重复