個人前端工具集(一)日期時間轉換工具javascript
liuyuhang原創,未經容許禁止轉載html
目錄前端
個人前端工具集java
1.日期時間轉換工具數據庫
1.1格式需求json
項目中的前端頁面,須要對不一樣的狀況使用不一樣的日期或時間格式。如:工具
①yyyy-MM-ddpost
②yy-Mm-dd測試
③yyyy-MM-dd HH:mmspa
④yy-Mm-dd HH:mm
⑤yyyy-MM-dd HH:mm:ss
⑥yy-Mm-dd HH:mm:ss
1.2.原由
又由於從數據庫或者什麼地方得到的時間日期格式使用java代碼來轉換異常麻煩
因此我索性將這種工做交給了前端,因此寫了這個日期格式轉換工具,力求:
java.util.Date.toString()格式,js中的的new Date.toString()格式均可以直接使用轉換。
2.代碼
代碼以下:
1 /** 2 * @author Liuyuhang 3 * json date轉換日期工具 4 * @param: obj : new Date.toString()格式 5 * @param: isFullYear: boolean: true=yyyy , false=yy 6 */ 7 function parse2Date(obj, isFullYear) { 8 //是否爲yyyy-mm-dd,不然爲yy-mm-dd 9 var flagYear = isEmpty(isFullYear) ? false : isFullYear; 10 if (isEmptyStr(obj)) { 11 if (isEmptyStr(obj)) { 12 var date = new Date(obj); 13 var year = flagYear ? date.getFullYear().toString().substring(2) : date.getFullYear().toString(); 14 var month = (date.getMonth() + 1) < 10 ? "0" + (date.getMonth() + 1) : (date.getMonth() + 1); 15 var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); 16 return year + "-" + month + "-" + day; 17 } 18 } else { 19 console.error("傳入實參obj非string格式!沒法轉日期類型!"); 20 } 21 } 22 /** 23 * @author Liuyuhang 24 * json dateTime轉換時間工具 25 * @param:obj : new Date.toString()格式 26 * @param:isFullYear: boolean: true=yyyy , false=yy 27 * @param:isHasSecond: boolean: true=HH:mm:ss, false=HH:mm 28 */ 29 function parse2DateTime(obj, isFullYear, isHasSecond) { 30 //是否爲yyyy-mm-dd,不然爲yy-mm-dd 31 var flagYear = isEmpty(isFullYear) ? false : isFullYear; 32 var flagSecond = isEmpty(isHasSecond) ? false : isHasSecond; 33 if (isEmptyStr(obj)) { 34 if (notEmpty(obj)) { 35 var dateTime = new Date(obj); 36 var year = flagYear ? dateTime.getFullYear().toString().substring(2) : dateTime.getFullYear().toString(); 37 var month = (dateTime.getMonth() + 1) < 10 ? "0" + (dateTime.getMonth() + 1) : (dateTime.getMonth() + 1); 38 var day = dateTime.getDate() < 10 ? "0" + dateTime.getDate() : dateTime.getDate(); 39 var hour = dateTime.getHours() < 10 ? "0" + dateTime.getHours() : dateTime.getHours(); 40 var minute = dateTime.getMinutes() < 10 ? "0" + dateTime.getMinutes() : dateTime.getMinutes(); 41 var second = flagSecond ? (dateTime.getSeconds() < 10 ? ":0" + dateTime.getSeconds() : ":" + dateTime.getSeconds()) : ''; 42 return year + "-" + month + "-" + day + " " + hour + ":" + minute + second; 43 } 44 } else { 45 console.error("傳入實參obj非string格式!沒法轉日期時間類型!"); 46 } 47 } 48 49 /** 50 * @author Liuyuhang 51 * 將yy-MM-dd或yy-MM-dd HH:mm轉換爲Date格式 52 * @return:true:obj爲空 53 * @return:false:obj不爲空 54 */ 55 function parse2DateTimeFull(obj, isHasTime) { 56 var flagDate = isEmpty(isHasTime) ? false : isHasTime; 57 if (isEmptyStr(obj)) { 58 if (isEmptyStr(obj)) { 59 var year2 = new Date().getFullYear().toString().substring(0, 2); 60 if (isHasTime) { 61 return new Date(year2 + obj + ":00"); 62 } else { 63 return new Date(year2 + obj + " 00:00:00"); 64 } 65 } 66 } else { 67 console.error("傳入實參obj非string格式!沒法轉日期類型!"); 68 } 69 } 70 71 /** 72 * @author Liuyuhang 73 * 判斷obj是否爲null或undefinded或爲'' 74 * @return:true:obj爲空 75 * @return:false:obj不爲空 76 */ 77 function isEmpty(obj) { 78 return 'undefinded' == typeof obj || '' == obj || null == obj; 79 } 80 /** 81 * @author Liuyuhang 82 * 判斷obj是否爲空字符串格式 83 * @return:true:obj爲非空字符串 84 * @return:false:obj爲非字符串格式 85 */ 86 function isEmptyStr(obj) { 87 if ('string' == typeof obj) { 88 return 'undefinded' != typeof obj && '' != obj && null != obj; //字符串格式而且非空 89 } else { 90 return false; //非字符串格式 91 } 92 }
4.測試
測試代碼:
1 <button tyle="button" class="btn" onclick="test()">test</button> 2 3 <script type="text/javascript"> 4 function test() { 5 var now = new Date().toString(); 6 console.log(parse2Date(now, true)); 7 console.log(parse2Date(now, false)); 8 console.log(parseDateTime(now, true, true)); 9 console.log(parseDateTime(now, true, false)); 10 console.log(parseDateTime(now, false, true)); 11 console.log(parseDateTime(now, false, false)); 12 console.log(parse2DateTimeFull("18-2-4", false)) 13 console.log(parse2DateTimeFull("18-2-4 12:3", true)) 14 } 15 </script>
測試結果以下圖:
正常yyyy-MM-dd HH:mm:ss轉Date就不寫了!
以上!