国产探花免费观看_亚洲丰满少妇自慰呻吟_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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳曲县| 孝义市| 新河县| 阳东县| 黎平县| 青海省| 诸城市| 环江| 施秉县| 陵川县| 宕昌县| 湘潭县| 阿巴嘎旗| 临澧县| 专栏| 蒙自县| 龙陵县| 鄂托克旗| 罗田县| 唐河县| 鄯善县| 武威市| 井冈山市| 辽阳县| 颍上县| 金山区| 汉中市| 赞皇县| 北京市| 杂多县| 布尔津县| 游戏| 靖安县| 石城县| 通河县| 化隆| 双桥区| 桐柏县| 平湖市| 澄江县| 南部县|