zoukankan      html  css  js  c++  java
  • JSON时间转换格式化

    通常JSON时间一般是这样的格式。

    1
    /Date(1436595149269)/

    通常我们用AJAX获取下来的JSON数据,如果有时间,都是这种格式的。其中,中间的一段数字"1436595149269"表示的是1970年1月1日至今的毫秒数。

    这种时间格式并不能够直接显示给用户查看,因为这是人类所看不懂的时间。所以我们需要将它转换为正常人能够理解的时间格式。

    第一步,替换掉/Date()/


     

    //对外暴露的函数,替换掉/Date( )/
    function convertTime(jsonTime, format) {
        var date = new Date(parseInt(jsonTime.replace("/Date(", "").replace(")/", ""), 10));
        var formatDate = date.format(format);
        return formatDate;
    }

    第二步,将数字时间转换为可视化的yyyy-MM-dd HH:mm:ss的格式


    复制代码
    //先扩展一下javascript的Date类型,增加一个函数,用于返回我们想要的 yyyy-MM-dd HH:mm:ss 这种时间格式
    Date.prototype.format = function (format) {
        var date = {
            "M+": this.getMonth() + 1,
            "d+": this.getDate(),
            "h+": this.getHours(),
            "m+": this.getMinutes(),
            "s+": this.getSeconds(),
            "q+": Math.floor((this.getMonth() + 3) / 3),
            "S+": this.getMilliseconds()
        };
         
        if (/(y+)/i.test(format)) {
            format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
        }
     
        for (var k in date) {
            if (new RegExp("(" + k + ")").test(format)) {
              format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
            }
        }
         
        return format;
    }
    复制代码

    调用示例


    复制代码
    $(function () {
        var dt = '/Date(1436595149269)/';
        var formatTime1 = convertTime(dt, "yyyy-MM-dd hh:mm:ss");//2015-07-11 14:12:29
        $("#div1").text(formatTime1);
        var formatTime2 = convertTime(dt, "yyyy年MM月dd日 hh时mm分ss秒");//2015年07月11日 14时12分29秒
        $("#div2").text(formatTime2);
    })
    复制代码

    另外一个实现


    另外,还有一个方式,这个就不需要改原来Date原型了。

    复制代码
    <!doctype html>
    <html>
    <head>
        <title>JSON时间格式化(/Date()转换为yyyy-MM-dd HH:mm:ss)</title>
    </head>
    <body>
    <script>
    //yyyy-MM-dd HH:mm:SS
    function getDateTime(date) {
        var year = date.getFullYear();
        var month = date.getMonth() + 1;
        var day = date.getDate();
        var hh = date.getHours();
        var mm = date.getMinutes();
        var ss = date.getSeconds();
        return year + "-" + month + "-" + day + " " + hh + ":" + mm + ":" + ss;
    }
    //调用的是这个方法
    function ConvertJSONDateToJSDate(jsondate) {
        var date = new Date(parseInt(jsondate.replace("/Date(", "").replace(")/", ""), 10));
        return date;
    }
    var date = "/Date(1379944571737)/";
    alert(getDateTime(ConvertJSONDateToJSDate(date)));
    </script>
    </body>
    </html>
  • 相关阅读:
    鸿蒙的js开发模式19:鸿蒙手机下载python服务器端文件的实现
    【资源下载】Linux下的Hi3861一站式鸿蒙开发烧录(附工具)
    并发编程大扫盲:带你了解何为线程上下文切换
    内存溢出 MAT 排查工具,它真香香香
    面试官问:如何排除GC引起的CPU飙高?我脱口而出5个步骤
    小学妹问我:如何利用可视化工具排查问题?
    你不得不知的6个JDK自带JVM调优工具
    那个小白还没搞懂内存溢出,只能用案例说给他听了
    听说同学你搞不懂Spring Boot集成Mybatis的玩法,田哥来教你
    手把手教你设置JVM调优参数
  • 原文地址:https://www.cnblogs.com/zxtceq/p/7160351.html
Copyright © 2011-2022 走看看