JavaScript比較同一天的時(shí)間大小實(shí)例代碼
在項(xiàng)目開(kāi)發(fā)的過(guò)程中,有時(shí)候會(huì)遇到同一天內(nèi)的時(shí)間大小比較,一般來(lái)說(shuō)選擇時(shí)間是通過(guò)插件實(shí)現(xiàn)的,但并不排除客戶要求手動(dòng)輸入的情況。
那么,在應(yīng)客戶要求手動(dòng)輸入時(shí)間,并且需要進(jìn)行時(shí)間大小比較的時(shí)候該如何實(shí)現(xiàn)呢?以下簡(jiǎn)單介紹我實(shí)現(xiàn)的方法步驟:
1.首先,獲取用戶輸入的內(nèi)容;
2.驗(yàn)證時(shí)間格式是否正確;
3.比較兩個(gè)時(shí)間的大?。ㄕ砹巳N比較時(shí)間的方法,詳情請(qǐng)查看以下代碼);
4.返回結(jié)果。
以下為示例代碼,僅做參考:
1.獲取用戶輸入的兩個(gè)時(shí)間,并將用戶輸入的冒號(hào)全部替換為半角冒號(hào),方便后續(xù)操作;
var bagin = $('.input_three').val().replace(/:/g,':');//將全角冒號(hào)替換為半角冒號(hào),替換的目的是為了通過(guò)半角冒號(hào)分割字符 var end = $('.input_four').val().replace(/:/g,':'); // 替換字符串中的某個(gè)字符:.replace(':',':'):只替換字符串中的第一個(gè)全角冒號(hào);.replace(/:/g,':'):替換字符串中的所有的全角冒號(hào) //將時(shí)間以冒號(hào)分割:以下比較時(shí)間大小的方法中會(huì)用到 var bagin_ = bagin.split(':'); var end_ = end.split(':');
2.驗(yàn)證時(shí)間格式是否正確:
// 正則驗(yàn)證時(shí)間格式,正確的時(shí)間范圍(通過(guò)返回時(shí)間戳格式,否則返回null) // [0-9]在范圍內(nèi)取其一;?是取之前字符的0個(gè)或者1個(gè);也可以解釋為非貪婪模式;|或者 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("請(qǐng)輸入正確的營(yíng)業(yè)時(shí)間,00:00:00-23:59:59"); return false; } if(end_r==null){ alert("請(qǐng)輸入正確的截止時(shí)間,00:00:00-23:59:59"); return false; }
3.比較時(shí)間大小:
方法一: 通過(guò)時(shí)間戳比較時(shí)間大小(必須轉(zhuǎn)換為時(shí)間戳格式才能夠進(jìn)行大小比較)
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("開(kāi)始時(shí)間不能大于等于結(jié)束時(shí)間"); // return false; // }
方法二:分別獲取輸入時(shí)間的時(shí)分秒進(jìn)行判斷
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("開(kāi)始時(shí)間不能大于等于結(jié)束時(shí)間"); // return false; // }
方法三:通過(guò)計(jì)算總秒數(shù)來(lái)比較時(shí)間大小
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("開(kāi)始時(shí)間不能大于等于結(jié)束時(shí)間"); return false; } // else{ alert("提交成功"); }
總結(jié)
以上所述是小編給大家介紹的JavaScript比較同一天的時(shí)間大小實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
bootstrap weebox 支持ajax的模態(tài)彈出框
本篇介紹的bootstrap weebox(支持ajax的模態(tài)彈出框),歷經(jīng)多次修改,目前版本已經(jīng)穩(wěn)定,整合了bootstrap的響應(yīng)式,界面簡(jiǎn)單,功能卻無(wú)比豐富,支持ajax、圖片預(yù)覽等等2017-02-02dedecms頁(yè)面如何獲取會(huì)員狀態(tài)的實(shí)例代碼
下面小編就為大家?guī)?lái)一篇dedecms頁(yè)面如何獲取會(huì)員狀態(tài)的實(shí)例代碼。一起跟隨小編過(guò)來(lái)看看吧,希望對(duì)大家有所幫助。2016-03-03Javascript 創(chuàng)建類并動(dòng)態(tài)添加屬性及方法的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇Javascript 創(chuàng)建類并動(dòng)態(tài)添加屬性及方法的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10微信小程序?qū)崿F(xiàn)多行文字滾動(dòng)效果
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)多行文字滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03DOM_window對(duì)象屬性之--clipboardData對(duì)象操作代碼
clipboardData 對(duì)象提供了對(duì)于預(yù)定義的剪貼板格式的訪問(wèn),以便在編輯操作中使用。2011-02-02uniapp實(shí)現(xiàn)人臉識(shí)別功能的具體實(shí)現(xiàn)代碼
最近在使用uniapp開(kāi)發(fā)項(xiàng)目,有刷臉實(shí)名認(rèn)證的需求,下面這篇文章主要給大家介紹了關(guān)于uniapp實(shí)現(xiàn)人臉識(shí)別功能的具體實(shí)現(xiàn),文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12JavaScript表單即時(shí)驗(yàn)證 驗(yàn)證不成功不能提交
這篇文章主要為大家詳細(xì)介紹了JavaScript表單即時(shí)驗(yàn)證,驗(yàn)證不成功不能提交,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08js實(shí)現(xiàn)滑動(dòng)觸屏事件監(jiān)聽(tīng)的方法
這篇文章主要介紹了js實(shí)現(xiàn)滑動(dòng)觸屏事件監(jiān)聽(tīng)的方法,適用于手機(jī)端觸屏滑動(dòng)事件的監(jiān)聽(tīng)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-05