国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

兩行代碼輕松搞定JavaScript日期驗證

2019-11-20 09:18:56
字體:
來源:轉載
供稿:網友

我們通常在 JavaScript 中驗證日期,基本的思路大概是,先判斷年月日是否有效,再判斷當月是否有當日,比如一些月份沒有 31 日,平年二月沒有 29、30 日,閏年二月沒有 30 日等等。 

偶然間發現一個技巧,能判斷以上所有的情況。除去賦值代碼,實際代碼僅兩行。 

其實這個技巧也很簡單,通過實例化 Date 對象來生成一個合法的日期,再去對比年月日是否相等,以驗證日期是否合法。 

var originalYear = 2016;var originalMonth = 12;var originalDay = 32;var date = new Date(originalYear, originalMonth - 1, originalDay);var year = date.getFullYear();var month = date.getMonth() + 1;var day = date.getDate();console.log(year + '-' + month + '-' + day); // 2017-1-1 

因為 12 月沒有 32 日,所以輸出的日期就是第二年的 1 月 1 日,年月日不相等,所以 2016 年 12 月 32 日不是一個合法的日期。 

具體的實現代碼:

 var validateDate = function (originalYear, originalMonth, originalDay) { var date = new Date(originalYear, originalMonth - 1, originalDay); var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); return year == originalYear && month == originalMonth && day == originalDay;} 

測試: 

console.log(validateDate()); // falseconsole.log(validateDate(-1, -1, -1)); // falseconsole.log(validateDate('', '', '')); // falseconsole.log(validateDate([], [], [])); // falseconsole.log(validateDate({}, {}, {})); // false// 平年二月。console.log(validateDate(2015, 2, 29)); // false// 閏年二月。console.log(validateDate(2016, 2, 29)); // trueconsole.log(validateDate(2016, 6, 30)); // trueconsole.log(validateDate(2016, 6, 31)); // falseconsole.log(validateDate('2016', '01', '01')); // true

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郯城县| 远安县| 图们市| 海原县| 奉化市| 永修县| 喀什市| 兴仁县| 阜城县| 蚌埠市| 桐梓县| 金塔县| 石泉县| 顺义区| 磴口县| 双桥区| 克什克腾旗| 阿坝县| 邓州市| 太谷县| 万宁市| 朝阳县| 饶平县| 博客| 韶关市| 彰化县| 固镇县| 长丰县| 英德市| 台江县| 马山县| 公主岭市| 江山市| 鹤岗市| 玛纳斯县| 姚安县| 六枝特区| 屯留县| 阜阳市| 辽阳市| 治县。|