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_07_理解instanceof实现原理
Oct 15 Javascript
js的表单操作 简单计算器
Dec 29 Javascript
给jQuery方法添加回调函数一款插件的应用
Jan 21 Javascript
JQuery判断子iframe何时加载完成解决方案
Aug 20 Javascript
js中把JSON字符串转换成JSON对象最好的方法
Mar 21 Javascript
jquery 判断滚动条到达了底部和顶端的方法
Apr 02 Javascript
javascript中callee与caller的区别分析
Apr 20 Javascript
你可能不知道的前端算法之文字避让(inMap)
Jan 12 Javascript
layui table数据修改的回显方法
Sep 04 Javascript
JavaScript获取当前url路径过程解析
Dec 27 Javascript
JS实现网站吸顶条
Jan 08 Javascript
详解JavaScript自定义函数
Jul 29 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
DedeCms模板安装/制作概述
2007/03/11 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
php计算两个整数的最大公约数常用算法小结
2015/03/05 PHP
PHP实现下载远程图片保存到本地的方法
2017/06/19 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
Jquery ajaxsubmit上传图片实现代码
2010/11/04 Javascript
修改jquery.lazyload.js实现页面延迟载入
2010/12/22 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
JS中的==运算: [''] == false —&gt;true
2016/07/24 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
详解ES6通过WeakMap解决内存泄漏问题
2018/03/09 Javascript
JS实现前端页面的搜索功能
2018/06/12 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
js回溯法计算最佳旅行线路代码实例
2019/09/11 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
Python中实例化class的执行顺序示例详解
2018/10/14 Python
对python周期性定时器的示例详解
2019/02/19 Python
python区块及区块链的开发详解
2019/07/03 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
Python开发之pip安装及使用方法详解
2020/02/21 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
银河香水:Galaxy Perfume
2019/03/25 全球购物
历史专业个人求职信范文
2013/12/07 职场文书
初三学习决心书
2014/03/11 职场文书
大班上学期幼儿评语
2014/04/30 职场文书
2014年党员加强作风建设思想汇报
2014/09/15 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
mysql 带多个条件的查询方式
2021/06/05 MySQL