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入门之事件、cookie、定时等
Oct 21 Javascript
ie6下png图片背景不透明的解决办法使用js实现
Jan 11 Javascript
checkbox使用示例
Aug 23 Javascript
JavaScript实现存储HTML字符串示例
Apr 21 Javascript
推荐6款基于jQuery实现图片效果插件
Dec 07 Javascript
深入了解JavaScript中的Symbol的使用方法
Jul 28 Javascript
jQuery中trigger()与bind()用法分析
Dec 18 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
Sep 01 Javascript
DOM 事件的深入浅出(二)
Dec 05 Javascript
Vue封装一个简单轻量的上传文件组件的示例
Mar 21 Javascript
vue中的ref和$refs的使用
Nov 22 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
Oct 28 jQuery
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 explode函数实例代码
2012/02/27 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
PHP设置images目录不充许http访问的方法
2016/11/01 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
javascript优先加载笔记代码
2008/09/30 Javascript
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
用jquery实现等比例缩放图片效果插件
2010/07/24 Javascript
用js解决数字不能换行问题
2010/08/10 Javascript
鼠标移到图片上变大显示而不是放大镜效果
2014/06/15 Javascript
火狐下input焦点无法重复获取问题的解决方法
2014/06/16 Javascript
javascript实现控制的多级下拉菜单
2015/07/05 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
微信小程序  生命周期详解
2016/10/27 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
python通过smpt发送邮件的方法
2015/04/30 Python
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
python如何导入依赖包
2020/07/13 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
莫斯科珠宝厂官方网站:Miuz
2020/09/19 全球购物
应聘教师推荐信
2013/10/31 职场文书
创先争优活动方案
2014/02/12 职场文书
关于召开会议的通知
2015/04/15 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
安全教育主题班会总结
2015/08/14 职场文书
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏