您好,登錄后才能下訂單哦!
在項目開發的過程中,有時候會遇到同一天內的時間大小比較,一般來說選擇時間是通過插件實現的,但并不排除客戶要求手動輸入的情況。
那么,在應客戶要求手動輸入時間,并且需要進行時間大小比較的時候該如何實現呢?以下簡單介紹我實現的方法步驟:
1.首先,獲取用戶輸入的內容;
2.驗證時間格式是否正確;
3.比較兩個時間的大小(整理了三種比較時間的方法,詳情請查看以下代碼);
4.返回結果。
以下為示例代碼,僅做參考:
1.獲取用戶輸入的兩個時間,并將用戶輸入的冒號全部替換為半角冒號,方便后續操作;
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.驗證時間格式是否正確:
// 正則驗證時間格式,正確的時間范圍(通過返回時間戳格式,否則返回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.比較時間大小:
方法一: 通過時間戳比較時間大小(必須轉換為時間戳格式才能夠進行大小比較)
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; // }
方法二:分別獲取輸入時間的時分秒進行判斷
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; // }
方法三:通過計算總秒數來比較時間大小
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("提交成功"); }
總結
以上所述是小編給大家介紹的JavaScript比較同一天的時間大小實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。