在JavaScript中计算给定数组和选定时间的时间

在JavaScript中计算给定数组和选定时间的时间,javascript,Javascript,我有一系列的时间,就像 const时间项=[ {标签:“开始时间”,值:“开始时间”,所选值:true}, {标签:'01:00AM',值:'01:00AM'}, {标签:'02:00AM',值:'02:00AM'}, {标签:'03:00AM',值:'03:00AM'}, {标签:'04:00AM',值:'04:00AM'}, {标签:'05:00AM',值:'05:00AM'}, {标签:'06:00AM',值:'06:00AM'}, {标签:'07:00AM',值:'07:00AM'},

我有一系列的时间,就像

const时间项=[
{标签:“开始时间”,值:“开始时间”,所选值:true},
{标签:'01:00AM',值:'01:00AM'},
{标签:'02:00AM',值:'02:00AM'},
{标签:'03:00AM',值:'03:00AM'},
{标签:'04:00AM',值:'04:00AM'},
{标签:'05:00AM',值:'05:00AM'},
{标签:'06:00AM',值:'06:00AM'},
{标签:'07:00AM',值:'07:00AM'},
{标签:'08:00AM',值:'08:00AM'},
{标签:'09:00AM',值:'09:00AM'},
{标签:'10:00AM',值:'10:00AM'},
{标签:'11:00AM',值:'11:00AM'},
{标签:'12:00pm',值:'12:00pm'},
{标签:'01:00pm',值:'01:00pm'},
{标签:'02:00pm',值:'02:00pm'},
{标签:'03:00pm',值:'03:00pm'},
{标签:'04:00pm',值:'04:00pm'},
{标签:'05:00pm',值:'05:00pm'},
{标签:'06:00pm',值:'06:00pm'},
{标签:'07:00pm',值:'07:00pm'},
{标签:'08:00pm',值:'08:00pm'},
{标签:'09:00pm',值:'09:00pm'},
{标签:'010:00 PM',值:'10:00 PM'},
{标签:'011:00pm',值:'11:00pm'},
{标签:'012:00AM',值:'12:00AM'}

];您可以这样做,创建一个临时的
Date()
对象,从您的选择中获得开始和结束时间,
Date()
构造函数需要日期和时间,因此您可以将任意日期添加到这两个日期构造函数中,因为这无关紧要

附加一个代码段,可以找到两个给定时间之间的差异

var timeStart=新日期(“01/01/2007”+“05:00 AM”);
var TIMEND=新日期(“2007年1月1日”+“晚上10:30”);
var diff=(timeEnd-timeStart)/60000//除以秒和毫秒
var分钟数=差异%60;
变量小时=(差异-分钟)/60;

控制台日志(小时)这里有一种解析时间的方法(不包括验证代码)

const时间项=[
{标签:“开始时间”,值:“开始时间”,所选值:true},
{标签:'01:00AM',值:'01:00AM'},
{标签:'02:00AM',值:'02:00AM'},
{标签:'03:00AM',值:'03:00AM'},
{标签:'04:00AM',值:'04:00AM'},
{标签:'05:00AM',值:'05:00AM'},
{标签:'06:00AM',值:'06:00AM'},
{标签:'07:00AM',值:'07:00AM'},
{标签:'08:00AM',值:'08:00AM'},
{标签:'09:00AM',值:'09:00AM'},
{标签:'10:00AM',值:'10:00AM'},
{标签:'11:00AM',值:'11:00AM'},
{标签:'12:00pm',值:'12:00pm'},
{标签:'01:00pm',值:'01:00pm'},
{标签:'02:00pm',值:'02:00pm'},
{标签:'03:00pm',值:'03:00pm'},
{标签:'04:00pm',值:'04:00pm'},
{标签:'05:00pm',值:'05:00pm'},
{标签:'06:00pm',值:'06:00pm'},
{标签:'07:00pm',值:'07:00pm'},
{标签:'08:00pm',值:'08:00pm'},
{标签:'09:00pm',值:'09:00pm'},
{标签:'010:00 PM',值:'10:00 PM'},
{标签:'011:00pm',值:'11:00pm'},
{标签:'012:00AM',值:'12:00AM'}
];
功能差异(开始、结束){
常量amOrPmEnd=end.substring(end.length-2);
设endInt=parseInt(end.split(amOrPmEnd)[0]);
如果(pmend=='PM'&&endInt!==12){
endInt+=12;
}
常量amOrPmStart=start.substring(start.length-2);
让startInt=parseInt(start.split(amOrPmStart)[0]);
如果(amOrPmStart=='PM'&&startInt!==12){
startInt+=12;
}
返回endInt-startInt;
}
控制台日志(差异(“12:00 PM”,“01:00 PM”))
控制台日志(不同(“凌晨2:00”、“下午3:00”))

console.log(diff(“01:00 PM”,“011:00 PM”)
您尝试了什么?编写您尝试的内容有助于更轻松地回答问题…我已更新了问题。请检查。这不能算是一次尝试。我认为你应该把PM转换成24小时制,这样做很简单。如果分钟数始终为“00”,请使用parsInt获取小时数部分。如果分钟数也发生变化,请使用拆分(“:”)并计算。