json格式日期转换为自定义格式
2012-05-18 18:43
357 查看
今天在做AJAX数据传输方面的示例。突然发现当以json格式返回日期对像时,直接取得的结果如下 '/Date(1316756746000)/'。这个格式数据,我以前未使用过,也不知道如何转换为datetime的格式。
最先想到的办法当然是从网上找了,不过很可惜,找了很多方法都不见效。不过有一点提醒了我,在我找到的资料中提到,其中的一长串数据’1316756746000‘实际代表是毫秒。于是我想直接用毫秒生成日期了。具体做法如下:
1、过滤不需要的字符,如/和Date(等
var xx='/Date(1316756746000)/';
var tt=xx.substring(6,xx.length-2);
这样就得到如下结果
1316756746000
2、把毫秒转换为日期
var jsonDate=new Date(parseInt( xx.substring(6,xx.length-2)));//注意要先转换为int类型哟
3、把日期格式化为想要的格式,由于没有直接的格式化方法,所以采用了网上的公共方法。如下
Date.prototype.format = function(format){
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 result = jsonDate.format("yyyy年mm月dd日");
这时,再打印出来可以看到日期变成了 “2011年9月23日”。这就是我们想要的格式 了。
最先想到的办法当然是从网上找了,不过很可惜,找了很多方法都不见效。不过有一点提醒了我,在我找到的资料中提到,其中的一长串数据’1316756746000‘实际代表是毫秒。于是我想直接用毫秒生成日期了。具体做法如下:
1、过滤不需要的字符,如/和Date(等
var xx='/Date(1316756746000)/';
var tt=xx.substring(6,xx.length-2);
这样就得到如下结果
1316756746000
2、把毫秒转换为日期
var jsonDate=new Date(parseInt( xx.substring(6,xx.length-2)));//注意要先转换为int类型哟
3、把日期格式化为想要的格式,由于没有直接的格式化方法,所以采用了网上的公共方法。如下
Date.prototype.format = function(format){
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 result = jsonDate.format("yyyy年mm月dd日");
这时,再打印出来可以看到日期变成了 “2011年9月23日”。这就是我们想要的格式 了。
相关文章推荐
- json格式日期转换为自定义格式
- Json 的日期格式与.Net DateTime类型的转换
- Js:消息弹出框、获取时间区间、时间格式、easyui datebox 自定义校验、表单数据转化json、控制两个日期不能只填一个
- js json日期格式转换日期方法
- 关于Web项目里的给表单验证控件添加结束时间不得小于开始时间的验证方法,日期转换和前台显示格式之间,还有JSON取日期数据格式转换成标准日期格式的问题
- Json 返回日期格式转换
- ASP.Net Core 返回的json数据,自定义日期格式
- JSONObject.toBean中日期格式数据转换失效的解决办法!
- Json返回/Date(1429175003077)/格式日期转换
- json-lib date对象转json ,加入自定义日期格式处理
- 使用Jackson时转换JSON时,日期格式设置
- springMvc返回Json中自定义日期格式
- miniui datagrid 保存到服务端,使用.NET 自带 JSON 转换时发现日期格式不兼容。
- 使用Jackson时转换JSON时,日期格式设置
- 使用json.net 组件 生成JSON字符串,自定义日期格式
- json返回的日期通常都是/Date(1354648740000)/这样的格式,下面的函数可以转换成常用的格式 如:2012-12-05
- 简单的分页存储过程,Json格式日期转换为一般日期
- Json 的日期格式与.Net DateTime类型的转换
- 使用commons-beanutils把javabean转换成Map日期date不能自定义格式
- 关于 javascript 处理json格式日期转换的方法