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的一个简单的脚本验证插件
Apr 05 Javascript
actionscript与javascript的区别
May 25 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
Jul 09 Javascript
String.prototype实现的一些javascript函数介绍
Nov 22 Javascript
详解jquery中$.ajax方法提交表单
Nov 03 Javascript
js判断输入框不能为空格或null值的实现方法
Mar 02 Javascript
npm 更改默认全局路径以及国内镜像的方法
May 16 Javascript
js常见遍历操作小结
Jun 06 Javascript
小程序实现锚点滑动效果
Sep 23 Javascript
JS实现TITLE悬停长久显示效果完整示例
Feb 11 Javascript
浅谈vue中$bus的使用和涉及到的问题
Jul 28 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
Aug 06 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中遍历stdclass object的实现代码
2011/06/09 PHP
C#静态方法与非静态方法实例分析
2014/09/22 PHP
PHP统计目录大小的自定义函数分享
2014/11/18 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
2015/04/26 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
thinkPHP5框架路由常用知识点汇总
2019/09/15 PHP
JavaScript 设计模式学习 Factory
2009/07/29 Javascript
加载 Javascript 最佳实践
2011/10/30 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
最原始的jQuery注册验证方式
2016/10/11 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
jquery 手势密码插件
2017/03/17 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
11行JS代码制作二维码生成功能
2018/03/09 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
在layui中select更改后生效的方法
2019/09/05 Javascript
vue实现简单图片上传
2020/06/30 Javascript
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
python学习数据结构实例代码
2015/05/11 Python
Python实现一个简单的验证码程序
2017/11/03 Python
python贪吃蛇游戏代码
2020/04/18 Python
python pyinstaller打包exe报错的解决方法
2019/11/02 Python
pandas参数设置的实用小技巧
2020/08/23 Python
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
本科应届生自荐信
2014/06/29 职场文书
护士节慰问信
2015/02/15 职场文书
李强优秀员工观后感
2015/06/16 职场文书
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python