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 相关文章推荐
jquery api参考 visualjquery 中国线路 速度快
Nov 30 Javascript
javascript一点特殊用法
May 28 Javascript
Extjs中常用表单介绍与应用
Jun 07 Javascript
在Javascript里访问SharePoint列表数据的实现方法
May 22 Javascript
js自执行函数的几种不同写法的比较
Aug 16 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
Apr 25 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
Mar 31 Javascript
javascript实现简单的分页特效
Aug 12 Javascript
JavaScript中的原始值和复杂值
Jan 07 Javascript
vue interceptor 使用教程实例详解
Sep 13 Javascript
js实现经典贪吃蛇小游戏
Mar 19 Javascript
vue之封装多个组件调用同一接口的案例
Aug 11 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
解析左右值无限分类的实现算法
2013/06/20 PHP
PHP 循环删除无限分类子节点的实现代码
2013/06/21 PHP
PHP中nowdoc和heredoc使用需要注意的一点
2014/03/21 PHP
php使用curl实现简单模拟提交表单功能
2017/05/15 PHP
微信公众号实现会员卡领取功能
2017/06/08 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
javascript this用法小结
2008/12/19 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
express的中间件bodyParser详解
2014/12/04 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
javascript中attachEvent用法实例分析
2015/05/14 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
JS定时器用法分析【时钟与菜单中的应用】
2016/12/21 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
python操作xml文件详细介绍
2014/06/09 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
opencv python 图像去噪的实现方法
2018/08/31 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
python3 字符串知识点学习笔记
2020/02/08 Python
基于Python fminunc 的替代方法
2020/02/29 Python
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
采购内勤岗位职责
2013/12/10 职场文书
文秘人员工作职责
2014/01/31 职场文书
学校学习雷锋活动总结
2014/07/03 职场文书
行政秘书工作自我鉴定
2014/09/15 职场文书
2014年售票员工作总结
2014/11/19 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
银行资信证明
2015/06/17 职场文书