大家好,我正在尝试使用javascript验证开始时间和结束时间,如下所示
<input type="text" id="txtStartTime" value="5:00 PM" />
<input type="text" id="txtEndTime" value="01:23 AM" />
<input type="button" id="btnCompare" value="Compare" onclick="Compare()" />
<script type="text/javascript">
function Compare() {
var strStartTime = document.getElementById("txtStartTime").value;
var strEndTime = document.getElementById("txtEndTime").value;
var startTime = new Date().setHours(GetHours(strStartTime), GetMinutes(strStartTime), 0);
var endTime = new Date(startTime)
endTime = endTime.setHours(GetHours(strEndTime), GetMinutes(strEndTime), 0);
if (startTime > endTime) {
alert("Start Time is greater than end time");
}
if (startTime == endTime) {
alert("Start Time equals end time");
}
if (startTime < endTime) {
alert("Start Time is less than end time");
}
}
function GetHours(d) {
var h = parseInt(d.split(':')[0]);
if (d.split(':')[1].split(' ')[1] == "PM") {
h = h + 24;
}
return h;
}
function GetMinutes(d) {
return parseInt(d.split(':')[1].split(' ')[0]);
}
</script>
我需要的是,如果我在开始时间为早上8:00进入,结束时间为早上9:00它应该返回true,如果我在开始时间进入上午9:00,结束时间为上午8:00是应该返回false
答案 0 :(得分:0)
您可以使用此功能 -
function compareDate (a,b) {
// Compare two dates (could be of any type supported by the convert
// function above) and returns:
// -1 : if a < b
// 0 : if a = b
// 1 : if a > b
// NaN : if a or b is an illegal date
// NOTE: The code inside isFinite does an assignment (=).
return (
isFinite(a.valueOf()) &&
isFinite(b.valueOf()) ?
(a>b)-(a<b) :
NaN
);
}
此功能仅适用于日期类型。请找到之前提供的解决方案的原始link。
答案 1 :(得分:0)
尝试以下脚本,如果您要设置以小时为单位的时间,如果您想要使用分钟验证,那么您需要使用不同的应用程序
function Compare() {
var startTime= "15:00"; // format hh:mm
var endTime = "12:00";
var st = startTime.split(":");
var et = endTime .split(":");
var OK = false;
if (st[0] < et[0]) { OK = false }
else
{
OK = true;
}
if (!OK) {
alert("The end time is less than start time");
}
}