时间类型数据被Json序列化

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44540236/article/details/92760744
开发工具与关键技术:VS    
作者:听民谣的老猫
撰写时间:2019/6/12   11:07

分享一下最近被解决的一个问题点——时间类型被Json序列化。
数据查询代码:


结果:
在这里插入图片描述

在查询出数据库有关时间的数据后通过return Json 返回往往会导致数据的序列化。

解决时间类型被Json序列化

出生日期(/Date(959616000000)/)格式化(在js中格式化时间)

封装方法代码:

 function ChangeDateFormat(jsondate, isDateTime) {
            jsondate = jsondate.replace("/Date(", "").replace(")/", "");
            if (jsondate.indexOf("+") > 0) {
                jsondate = jsondate.substring(0, jsondate.indexOf("+"));
            }
            else if (jsondate.indexOf("-") > 0) {
                jsondate = jsondate.substring(0, jsondate.indexOf("-"));
            }

            var date = new Date(parseInt(jsondate, 10));
            var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
            var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();

            var str = date.getFullYear() + "-" + month + "-" + currentDate;

            if (isDateTime != null && isDateTime != undefined && isDateTime == true) {
                var hours = date.getHours() > 9 ? date.getHours() : "0" + date.getHours();
                var minutes = date.getMinutes() > 9 ? date.getMinutes() : "0" + date.getMinutes();
                var seconds = date.getSeconds() > 9 ? date.getSeconds() : "0" + date.getSeconds();

                str = str + " " + hours + ":" + minutes + ":" + seconds;
            }
            return str;
        }

调用封装方法:

在这里插入图片描述

结果:
在这里插入图片描述
封装方法解析:
通过jsondate接收传入的序列化数据(/Date(959616000000)/),通过replace将“/Date”,“)/”
替换成” “(空),/Date(959616000000)/通过replace替换后就变成了959616000000,然后判断是否出现特殊符号”+”,”-”,如果有就通过substring方法提取字符串第一位到特殊符号前面一位(substring方法在我前面的博客中有详细讲解),通过parseInt将数据转成整型,然后转成一个日期类型。取出月份,通过三木运算取出月份数值是否<10。为了格式工整如果取出的月份小于10就在月份前面拼接上一个0。(三目运算在我前面的博客中有详细讲解)(日期的提取和月份一样)然后是字符串的拼接var str = date.getFullYear() + “-” + month + “-” + currentDate;(年,月,日)时分秒的拼接由调用方法填的参数true决定,时分秒的提取同上。

出生日期(/Date(1530491400000)/)格式化(在js中格式化时间)

调用封装方法:(封装方法同上)
在这里插入图片描述
结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44540236/article/details/92760744