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 相关文章推荐
JS维吉尼亚密码算法实现代码
Nov 09 Javascript
javascript实现div的显示和隐藏的小例子
Jun 25 Javascript
jquery遍历checkbox介绍
Feb 21 Javascript
JS实现刷新父页面不弹出提示框的方法
Jun 22 Javascript
完美的js div拖拽实例代码
Sep 24 Javascript
JS使用面向对象技术实现的tab选项卡效果示例
Feb 28 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
Mar 21 Javascript
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
Mar 30 Javascript
手把手搭建安装基于windows的Vue.js运行环境
Jun 12 Javascript
Angular 2父子组件之间共享服务通信的实现
Jul 04 Javascript
详解vue.js之props传递参数
Dec 12 Javascript
微信小程序日期时间选择器使用方法
Feb 01 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
用Flash图形化数据(二)
2006/10/09 PHP
PHP EOT定界符的使用详解
2008/09/30 PHP
php按百分比生成缩略图的代码分享
2014/05/10 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
2016/05/13 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
jquery 操作DOM案例代码分享
2012/04/05 Javascript
jquery win 7透明弹出层效果的简单代码
2013/08/06 Javascript
JS测试显示屏分辨率以及屏幕尺寸的方法
2013/11/22 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
多种方法实现360浏览器下禁止自动填写用户名密码
2014/06/16 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
浅谈vue,angular,react数据双向绑定原理分析
2017/11/28 Javascript
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
为什么要使用Vuex的介绍
2019/01/19 Javascript
vue项目中引入vue-datepicker插件的详解
2019/05/14 Javascript
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
[01:23:45]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第一场 1月22日
2021/03/11 DOTA
python 获取本机ip地址的两个方法
2013/02/25 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
Python之list对应元素求和的方法
2018/06/28 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
使用python turtle画高达
2020/01/19 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
CSS3制作hover下划线动画
2017/03/27 HTML / CSS
大学理论知识学习自我鉴定
2014/04/28 职场文书
2014年采购部工作总结
2014/11/20 职场文书
2015年科协工作总结
2015/05/19 职场文书
家长会主持词开场白
2015/05/29 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
MySQL约束超详解
2021/09/04 MySQL
15个值得收藏的JavaScript函数
2021/09/15 Javascript