In the process of project development, sometimes you will encounter time comparisons within the same day. Generally speaking, the time selection is achieved through a plug-in, but this does not rule out the situation where customers require manual input. So, how to implement this when manually inputting time at the customer's request and needing to compare time sizes? The following is a brief introduction to the method steps I implemented:
1. First, obtain the content input by the user;
2. Verify whether the time format is correct;
3. Compare the two The size of time (three methods of comparing time are organized, please see the following code for details);
4. Return the result.
The following is a sample code, for reference only:
1. Get the two times input by the user, and replace all the colons entered by the user with half-width colons to facilitate subsequent operations;
var bagin = $('.input_three').val().replace(/:/g,':');//将全角冒号替换为半角冒号,替换的目的是为了通过半角冒号分割字符 var end = $('.input_four').val().replace(/:/g,':'); // 替换字符串中的某个字符:.replace(':',':'):只替换字符串中的第一个全角冒号;.replace(/:/g,':'):替换字符串中的所有的全角冒号 //将时间以冒号分割:以下比较时间大小的方法中会用到 var bagin_ = bagin.split(':'); var end_ = end.split(':');
2. Verify whether the time format is correct:
// 正则验证时间格式,正确的时间范围(通过返回时间戳格式,否则返回null) // [0-9]在范围内取其一;?是取之前字符的0个或者1个;也可以解释为非贪婪模式;|或者 var bagin_r = bagin.match(/^([0-1]?[0-9]|2[0-3])(:|:)([0-5][0-9])(:|:)([0-5][0-9])$/); var end_r = end.match(/^([0-1]?[0-9]|2[0-3])(:|:)([0-5][0-9])(:|:)([0-5][0-9])$/); if(bagin_r==null){ alert("请输入正确的营业时间,00:00:00-23:59:59"); return false; } if(end_r==null){ alert("请输入正确的截止时间,00:00:00-23:59:59"); return false; }
3. Compare the time size:
Method 1: Compare the time size through timestamp (must be converted to timestamp format to proceed) Size comparison)
if(bagin_r[1]>end_r[1]||bagin_r[1]==end_r[1]&&bagin_r[3]>end_r[3]||bagin_r[1]==end_r[1]&&bagin_r[3]==end_r[3]&&bagin_r[5]>=end_r[5]){ // alert("开始时间不能大于等于结束时间"); // return false; // }
Method 2: Get the hours, minutes and seconds of the input time to judge
if(bagin_[0]>end_[0]||bagin_[0]==end_[0]&&bagin_[1]>end_[1]||bagin_[0]==end_[0]&&bagin_[1]==end_[1]&&bagin_[2]>=end_[2]){ // alert("开始时间不能大于等于结束时间"); // return false; // }
Method 3: Compare the time size by calculating the total number of seconds
var bagin_time = bagin_[0]*3600 + bagin_[1]*60 + bagin_[2]; var end_time = end_[0]*3600 + end_[1]*60 + end_[2]; if(bagin_time >= end_time){ alert("开始时间不能大于等于结束时间"); return false; } // else{ alert("提交成功"); }
Related recommendations :
Detailed explanation of usage examples of converting javascript timestamps into date format
Summary of javascript time processing methods (recommended)
javascript time object tutorial
The above is the detailed content of JavaScript compares times of the same day. For more information, please follow other related articles on the PHP Chinese website!