JavaScript根據出生日期計算年齡
根據出生日期計算出年齡這是非常簡單的事情,通過程式碼實現需要進行一些列計算。
下面通過程式碼例項介紹一下如何實現此功能。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function parseDate(str){ if(str.match(/^\d{4}[\-\/\s+]\d{1,2}[\-\/\s+]\d{1,2}$/)){ return new Date(str.replace(/[\-\/\s+]/i,'/')); } else if(str.match(/^\d{8}$/)){ return new Date(str.substring(0,4)+'/'+str.substring(4,6)+'/'+str.substring(6)); } else{ return ('時間轉換髮生錯誤!'); } } function GetAgeByBrithday(birthday){ var age=-1; var today=new Date(); var todayYear=today.getFullYear(); var todayMonth=today.getMonth()+1; var todayDay=today.getDate(); if(parseDate(birthday)!='時間轉換髮生錯誤!'){ birthday=parseDate(birthday); birthdayYear=birthday.getFullYear(); birthdayMonth=birthday.getMonth(); birthdayDay=birthday.getDate(); if(todayYear-birthdayYear<0){ alert("出生日期選擇錯誤!"); }else{ if(todayMonth*1-birthdayMonth*1<0){ age = (todayYear*1-birthdayYear*1)-1; }else{ if(todayDay-birthdayDay>=0){ age = (todayYear*1-birthdayYear*1); }else{ age = (todayYear*1-birthdayYear*1)-1; } } } return age*1; } else{ return -1; } } console.log(GetAgeByBrithday("1983-8-3"))
上面的程式碼實現了計算功能,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).function parseDate(str){},將時間日期字串轉換為Date物件。
(2).if(str.match(/^\d{4}[\-\/\s+]\d{1,2}[\-\/\s+]\d{1,2}$/)){},判斷是否能夠實現匹配,也就是時間日期字串是否能夠滿足一定的格式,比如"1983-8-3"或者"1983/8/3"這種格式。
(3).return new Date(str.replace(/[\-\/\s+]/i,'/')),返回Date物件,str.replace(/[\-\/\s+]/i,'/')進行字串格式轉換,將"1983-8-3"替換成"1983/8/3",因為前者作為Date()建構函式引數時,在低版本IE瀏覽器下不相容。
(4).else if(str.match(/^\d{8}$/)){
return new Date(str.substring(0,4)+'/'+str.substring(4,6)+'/'+str.substring(6));
},判斷是否符合19830803這種格式,然後進行提取相應的部分,然後連線起來。
(5).else{
return ('時間轉換髮生錯誤!');
},如果不滿足上面兩種情況,就返回這麼一個提示字串。
(6).function GetAgeByBrithday(birthday){},此方法實現計算功能,引數是時間日期字串。
(7).var age=-1,宣告一個變數並賦初值。
(8).var today=new Date(),建立一個時間日期物件。
(9).var todayYear=today.getFullYear(),獲取年份。
(10).var todayMonth=today.getMonth()+1,獲取月份,因為一月份返回0,所以要加1。
(11).var todayDay=today.getDate(),獲取天。
(12).if(parseDate(birthday)!='時間轉換髮生錯誤!'){},判斷是否能夠進行轉換。
(13).var birthday=parseDate(birthday),獲取時間日期物件。
(14).birthdayYear=birthday.getFullYear(),獲取年份。
(15).birthdayMonth=birthday.getMonth()+1,獲取月份。
(16).if(todayYear-birthdayYear<0){
alert("出生日期選擇錯誤!");
},如果當前日期小於出生日期,當然要報錯。
(17).else{
if(todayMonth*1-birthdayMonth*1<0){
age = (todayYear*1-birthdayYear*1)-1;
}else{
if(todayDay-birthdayDay>=0){
age = (todayYear*1-birthdayYear*1);
}else{
age = (todayYear*1-birthdayYear*1)-1;
}
}
},上面的程式碼進行一些列的計算,很簡單,不用多介紹。
二.相關閱讀:
(1).match方法參閱正規表示式match()一章節。
(2).Date()建構函式參閱JavaScript Date()建構函式引數一章節。
(3).replace方法參閱正規表示式replace()一章節。
(4).substring方法參閱JavaScript substring()一章節。
相關文章
- 資料庫 根據出生日期計算年齡的sql幾種資料庫寫法資料庫SQL
- 根據datetimepicker選擇的日期計算年齡
- JavaScript計算年齡JavaScript
- 根據生日求年齡的SQLSQL
- js根據出生年月日換算年齡JS
- 輸入某人出生日期,計算年齡和距60歲的天數
- javascript 驗證身份證完全版,根據身份證獲取性別年齡JavaScript
- PHP計算年齡、PHP
- 根據身高計算體重
- 根據公曆計算農曆
- IBM人工智慧新突破 根據語音推斷年齡IBM人工智慧
- java 根據經緯度計算圓周Java
- 根據AWR計算IOPS與MBPS
- excel身份證號計算年齡Excel
- 身份證之js獲取性別 年齡 出生日期JS
- iOS根據圖片比例計算顯示大小iOS
- 根據商品數量自動計算價格
- JavaScript 根據type篩選inputJavaScript
- javascript根據class獲取物件JavaScript物件
- Python 如何根據給定模型計算權值Python模型
- Python如何根據給定模型計算權值Python模型
- 鴻蒙NEXT開發案例:年齡計算鴻蒙
- 根據時間經緯度高程計算天頂角
- JavaScript字串物件 之 根據字元返回位置、根據位置返回字元、字串操作方法JavaScript字串物件字元
- JavaScript 根據物件鍵值進行排序JavaScript物件排序
- js,javascript 根據 xpath 路勁定位節點JSJavaScript
- 百度地圖根據經緯度計算瓦片行列號地圖
- 【資料結構】根據主定理,計算時間複雜度資料結構時間複雜度
- 根據傳入的年,月引數,返回當月的最大天數,平潤都可計算
- popWindow 根據內容計算高度
- 根據經緯度計算兩點之間的距離的公式公式
- 根據兩點經緯度計算距離和角度——java實現Java
- 工齡怎麼計算excel公式精確到月 如何設定工齡計算公式Excel公式
- PHP根據身份證號碼,獲取性別、獲取生日、計算年齡、獲取地址、獲取生肖、獲取星座、以及判斷是否是身份證號(方法教程)PHP
- 報表也可以根據單元格計算後結果進行排序排序
- iOS根據兩點經緯度座標計算指南針方位角iOS
- 根據JavaScript中原生的XMLHttpRequest實現jQuery的AjaxJavaScriptXMLHTTPjQuery
- 根據提示操作