JS处理json日期格式化问题


Posted in Javascript onOctober 01, 2015

起因

对于从C#返回的日期字段,当进行JSON序列化后,在前台JS里显示的并不是真正的日期,这让我们感觉很不爽,我们不可能为了这东西,把所有日期字段都变成string吧,所以,找了一个JS的扩展方法,来实现这个功能

实现

function ChangeDateFormat(jsondate) {
  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();

  return date.getFullYear()
    + "年"
    + month
    + "月"
    + currentDate
    + "日"
    + " "
    + date.getHours()
    + ":"
    + date.getMinutes();
}
//调用:ChangeDateFormat(data[i].arrDate)

调用

$.ajax({
      type: "Get",
      textType: "json",
      url: "/UserInfo/GetUserWithdraw",
      data: { id: id },
      success: function (data) {
        var result = html.replace(reg, function (node, key) {
          return {
            'Money': data.Money,
            'AddTime': ChangeDateFormat(data.AddTime),
            'CashTime': data.CashTime
          }[key];
        });

        TsingdaTips.ask({ msg: result, show_btn: false, title: "提现申请详情" });//预计打款时间等于申请时音后的(5号或20号)
      }
    });

PS:返回的json时间如 /Date(1290371638000)/ 形式,怎样处理成 yyyy-MM-dd 这类格式

去掉/Date

直接格式化1290371638000

/**
* 时间对象的格式化;
*/
Date.prototype.format = function(format){
 /*
 * eg:format="YYYY-MM-dd hh:mm:ss";
 */
 var o = {
 "M+" : this.getMonth()+1, //month
 "d+" : this.getDate(),   //day
 "h+" : this.getHours(),  //hour
   "m+" : this.getMinutes(), //minute
   "s+" : this.getSeconds(), //second
   "q+" : Math.floor((this.getMonth()+3)/3), //quarter
   "S" : this.getMilliseconds() //millisecond
  }
 
  if(/(y+)/.test(format)) {
  format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
  }
 
  for(var k in o) {
  if(new RegExp("("+ k +")").test(format)) {
   format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
  }
  }
 return format;
}

使用方法:

var testDate = new Date();
var testStr = testDate.format("YYYY年MM月dd日hh小时mm分ss秒");
alert(testStr);
Javascript 相关文章推荐
原生javascript实现图片轮播效果代码
Sep 03 Javascript
基于jquery &amp; json的省市区联动代码
Jun 26 Javascript
js 页面元素的几个用法总结
Nov 18 Javascript
JQuery.get提交页面不跳转的解决方法
Jan 13 Javascript
JavaScript动态提示输入框输入字数的方法
Jul 27 Javascript
JS简单获取当前日期和农历日期的方法
Apr 17 Javascript
JavaScript实现打地鼠小游戏
Apr 23 Javascript
详解react如何在组件中获取路由参数
Jun 15 Javascript
Node.js 8 中的重要新特性
Jun 28 Javascript
基于Vue实现微前端的示例代码
Apr 24 Javascript
Node.js API详解之 console模块用法详解
May 12 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
Nov 16 Javascript
JS日期格式化之javascript Date format
Oct 01 #Javascript
详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
Oct 01 #Javascript
RequireJS入门一之实现第一个例子
Sep 30 #Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
Sep 30 #Javascript
jquery插件pagination实现无刷新ajax分页
Sep 30 #Javascript
浅谈Javascript中substr和substring的区别
Sep 30 #Javascript
jQuery复制表单元素附源码分享效果演示
Sep 30 #Javascript
You might like
快速开发一个PHP扩展图文教程
2008/12/12 PHP
php class中self,parent,this的区别以及实例介绍
2013/04/24 PHP
迅速确定php多维数组的深度的方法
2014/01/07 PHP
ThinkPHP路由详解
2015/07/27 PHP
实现PHP框架系列文章(6)mysql数据库方法
2016/03/04 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
javascript仿百度输入框提示自动下拉补全
2016/01/07 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
基于vue2实现左滑删除功能
2017/11/28 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
Bootstrap4 gulp 配置详解
2019/01/06 Javascript
[04:09]2018年度DOTA2社区贡献奖-完美盛典
2018/12/16 DOTA
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
python进阶教程之文本文件的读取和写入
2014/08/29 Python
python抓取网页中图片并保存到本地
2015/12/01 Python
几种实用的pythonic语法实例代码
2018/02/24 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
python3排序的实例方法
2020/10/20 Python
创意爱尔兰礼物:Creative Irish Gifts
2020/01/29 全球购物
幼儿园教师的考核评语
2014/04/18 职场文书
学生评语大全
2014/04/18 职场文书
九一八事变演讲稿
2014/09/05 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
2016情人节宣传语
2015/07/14 职场文书
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS