個人前端工具集(一)日期時間轉換工具

個人前端工具集(一)日期時間轉換工具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就不寫了!

 

以上!

相關文章
相關標籤/搜索