zoukankan      html  css  js  c++  java
  • 我的前端工具集(一)日期时间转换工具

    我的前端工具集(一)日期时间转换工具

    liuyuhang原创,未经允许禁止转载

    目录

    我的前端工具集

    1.日期时间转换工具

      1.1格式需求

        项目中的前端页面,需要对不同的情况使用不同的日期或时间格式。如:

        ①yyyy-MM-dd

        ②yy-Mm-dd

        ③yyyy-MM-dd HH:mm

        ④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就不写了!

    以上!

  • 相关阅读:
    Alpha冲刺第一天
    团队项目-需求分析
    设计模式第二次作业
    设计模式第一次作业
    冲刺合集
    冲刺NO.12
    项目测试
    冲刺NO.11
    冲刺NO.9
    冲刺NO.10
  • 原文地址:https://www.cnblogs.com/liuyuhangCastle/p/9609320.html
Copyright © 2011-2022 走看看