JS實現(xiàn)判斷兩個日期不能跨年和跨月
js判斷兩個日期不能跨年和跨月,例如20230108,20230208
一、可以使用JavaScript中Date對象的方法來判斷兩個日期是否跨年和跨月。以下是一個實現(xiàn)該功能的示例代碼:
const date1 = new Date('2023-01-08'); const date2 = new Date('2023-02-08'); if (date1.getFullYear() !== date2.getFullYear() || date1.getMonth() !== date2.getMonth()) { console.log('日期跨年或跨月'); } else { console.log('日期不跨年也不跨月'); }
在上面的代碼中,我們首先創(chuàng)建了兩個Date對象,分別代表2023年1月8日和2023年2月8日。然后,我們使用getFullYear()
方法和getMonth()
方法獲取日期對象的年份和月份,并將它們進行比較,如果年份或月份不相等,則說明日期跨年或跨月。
二、如果想要驗證兩個日期字符串是否跨年或跨月,可以使用類似以下的代碼:
const dateString1 = '20230108'; const dateString2 = '20230208'; const date1 = new Date(`${dateString1.slice(0, 4)}-${dateString1.slice(4, 6)}-${dateString1.slice(6, 8)}`); const date2 = new Date(`${dateString2.slice(0, 4)}-${dateString2.slice(4, 6)}-${dateString2.slice(6, 8)}`); if (date1.getFullYear() !== date2.getFullYear() || date1.getMonth() !== date2.getMonth()) { console.log('日期跨年或跨月'); } else { console.log('日期不跨年也不跨月'); }
在上面的代碼中,我們首先將兩個日期字符串轉(zhuǎn)換為對應(yīng)的Date對象,然后進行比較,判斷是否跨年或跨月。
三、除了使用Date對象的方法來判斷兩個日期是否跨年和跨月,還可以使用字符串的比較來實現(xiàn)。具體來說,我們可以將兩個日期字符串中的年份和月份分別取出來,然后將它們進行比較,如果年份或月份不相等,則說明日期跨年或跨月。
以下是一個使用字符串比較的示例代碼:
const dateString1 = '20230108'; const dateString2 = '20230208'; if (dateString1.slice(0, 6) !== dateString2.slice(0, 6)) { console.log('日期跨年或跨月'); } else { console.log('日期不跨年也不跨月'); }
在上面的代碼中,我們首先將兩個日期字符串中的年份和月份分別取出來,然后將它們進行比較,判斷是否跨年或跨月。具體來說,dateString1.slice(0, 6)
表示取出字符串中的前6個字符,即年份和月份,dateString2.slice(0, 6)
同理。如果兩個字符串的前6個字符不相等,則說明日期跨年或跨月。
四、驗證是否是YYYYMMDD格式 如果要進一步驗證日期字符串是否符合指定的格式(如YYYYMMDD),可以使用正則表達式進行匹配。以下是一個示例函數(shù),它接受一個日期字符串和一個格式字符串,然后檢查日期字符串是否符合指定的格式:
function isValidDateFormat(dateStr, formatStr) { const regex = new RegExp(formatStr); return regex.test(dateStr); }
在這個函數(shù)中,我們使用RegExp構(gòu)造函數(shù)創(chuàng)建一個正則表達式,該正則表達式由格式字符串動態(tài)生成。然后我們使用test方法來檢查日期字符串是否符合這個正則表達式,如果符合則返回true,否則返回false。
例如,如果我們要驗證日期字符串是否符合YYYYMMDD的格式,可以調(diào)用該函數(shù)并傳入"\d{4}\d{2}\d{2}"作為格式字符串。需要注意的是,在JavaScript中,由于反斜杠字符具有特殊含義,所以在正則表達式字符串中需要將反斜杠轉(zhuǎn)義。
以下是一個完整的示例,它使用這兩個函數(shù)來檢查兩個日期字符串是否在同一年和同一月,且符合指定的格式:
function datesAreInSameMonthAndYear(dateStr1, dateStr2, formatStr) { if (!isValidDateFormat(dateStr1, formatStr) || !isValidDateFormat(dateStr2, formatStr)) { return false; // 如果日期字符串不符合指定的格式,則返回false } // 將日期字符串轉(zhuǎn)換為Date對象 const date1 = new Date(dateStr1.slice(0, 4), dateStr1.slice(4, 6) - 1, dateStr1.slice(6)); const date2 = new Date(dateStr2.slice(0, 4), dateStr2.slice(4, 6) - 1, dateStr2.slice(6)); // 檢查日期是否在同一年和同一月 return (date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth()); } function isValidDateFormat(dateStr, formatStr) { const regex = new RegExp(formatStr); return regex.test(dateStr); } const dateStr1 = '20230108'; const dateStr2 = '20230208'; const formatStr = '\d{4}\d{2}\d{2}'; if (datesAreInSameMonthAndYear(dateStr1, dateStr2, formatStr)) { console.log(`${dateStr1} and ${dateStr2} are in the same year and month.`); } else { console.log(`${dateStr1} and ${dateStr2} are not in the same year and month.`); }
在這個示例中,我們首先定義了兩個日期字符串(dateStr1和dateStr2)和一個格式字符串(formatStr)。然后我們調(diào)用datesAreInSameMonthAndYear函數(shù)來檢查這兩個日期字符串是否在同一年和同一月,同時符合指定的格式。最后,根據(jù)函數(shù)的返回值打印相應(yīng)的提示信息。
到此這篇關(guān)于JS實現(xiàn)判斷兩個日期不能跨年和跨月的文章就介紹到這了,更多相關(guān)JS判斷日期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript利用正則表達式來禁止鍵盤輸入數(shù)字
本文主要介紹了JavaScript利用正則表達式來禁止鍵盤輸入數(shù)字,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06CocosCreator如何實現(xiàn)劃過的位置顯示紋理
這篇文章主要介紹了CocosCreator紋理shader的一些知識,想了解shader的同學,一定要看下,并且親自動手實踐2021-04-04JS中關(guān)于ES6?Module模塊化的跨域報錯問題解決
這篇文章主要介紹了JS中關(guān)于ES6?Module模塊化的跨域報錯,ES6模塊化提供了export命令和import?命令,對于模塊的導出和引入,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-07-07Javascript實現(xiàn)Vue跨組件通信的方法詳解
這篇文章主要為大家詳細介紹了Vue的跨組件通信,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03微信小程序scroll-view實現(xiàn)上拉加載數(shù)據(jù)重復的解決方法
這篇文章主要為大家詳細介紹了微信小程序scroll-view實現(xiàn)上拉加載數(shù)據(jù)重復的解決方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08新浪微博字數(shù)統(tǒng)計 textarea字數(shù)統(tǒng)計實現(xiàn)代碼
從新浪微博代碼里抄的,非常不錯,需要的朋友可以參考下。2011-08-08JavaScript自定義瀏覽器滾動條兼容IE、 火狐和chrome
本文主要分享了使用原生JavaScript實現(xiàn)自定義瀏覽器滾動條兼容IE、 火狐和chrome的思路與方法,具有一定的參考價值,下面跟著小編一起來看下吧2017-01-01