使用js转换数据库时间类型
2016-04-22 20:56
549 查看
通常查询数据库返回的时间如果不进行处理 返回的格式为 /Date(1459699200000)/ 这时候如果需要用户看懂 就需要进行转换
方法1:
//将序列化成json格式后日期(毫秒数)转成日期格式
function ChangeDateFormat(cellval) {
var date = new Date(parseInt(cellval.replace("/Date(", "").replace(")/", ""), 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;
}
方法:2:
具体步骤如下:
1 导入打包好的js文件,内容为
以上方法中 各个方法的作用为:
1 eval() 计算括号中的值,参数必须为字符串
2 /\/Date\((\d+)\)\//gi 是正则表达式 \为转义符 /gi为参数
/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/m (多行查找)
/gi(全文查找、忽略大小写)
/ig(全文查找、忽略大小写)
new Date($1)为要把匹配出的字符串替换为的内容 ($1)为正则表达式中第一个括号内的内容 即(1459699200000)
执行过程为 eval("new Date(1459699200000)") 计算 这个时间 结果是Mon Apr 04 2016 00:00:00 GMT+0800 (中国标准时间)
然后再用pattern函数转换即可
方法1:
//将序列化成json格式后日期(毫秒数)转成日期格式
function ChangeDateFormat(cellval) {
var date = new Date(parseInt(cellval.replace("/Date(", "").replace(")/", ""), 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;
}
方法:2:
具体步骤如下:
1 导入打包好的js文件,内容为
/** * 对Date的扩展,将 Date 转化为指定格式的String * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符 * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) * eg: * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 * (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04 * (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04 * (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04 * (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 */ Date.prototype.pattern=function(fmt) { var o = { "M+" : this.getMonth()+1, //月份 "d+" : this.getDate(), //日 "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时 "H+" : this.getHours(), //小时 "m+" : this.getMinutes(), //分 "s+" : this.getSeconds(), //秒 "q+" : Math.floor((this.getMonth()+3)/3), //季度 "S" : this.getMilliseconds() //毫秒 }; var week = { "0" : "/u65e5", "1" : "/u4e00", "2" : "/u4e8c", "3" : "/u4e09", "4" : "/u56db", "5" : "/u4e94", "6" : "/u516d" }; if(/(y+)/.test(fmt)){ fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); } if(/(E+)/.test(fmt)){ fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "/u661f/u671f" : "/u5468") : "")+week[this.getDay()+""]); } for(var k in o){ if(new RegExp("("+ k +")").test(fmt)){ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); } } return fmt; }2 、假设需要处理的值 var value= /Date(1459699200000)/ ,
var result=(eval(value.replace(/ \/Date\ ( ( \ d+) \ ) \ / / gi, "new Date($1)"))).pattern("yyyy-M-d");result 就是转换后的值 var result=2016-4-4;
以上方法中 各个方法的作用为:
1 eval() 计算括号中的值,参数必须为字符串
2 /\/Date\((\d+)\)\//gi 是正则表达式 \为转义符 /gi为参数
/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/m (多行查找)
/gi(全文查找、忽略大小写)
/ig(全文查找、忽略大小写)
new Date($1)为要把匹配出的字符串替换为的内容 ($1)为正则表达式中第一个括号内的内容 即(1459699200000)
执行过程为 eval("new Date(1459699200000)") 计算 这个时间 结果是Mon Apr 04 2016 00:00:00 GMT+0800 (中国标准时间)
然后再用pattern函数转换即可
相关文章推荐
- php强大的时间转换函数strtotime
- JavaScript时间转换处理函数
- js中的时间转换―毫秒转换成日期时间的示例代码
- 使用javascript将时间转换成今天,昨天,前天等格式
- 详解JavaScript UTC时间转换方法
- ios开发中时间转换的方法集锦
- gson排除字段,包含字段工具类大全,构建普通的gson对象,包括对时间的转换
- iOS中相对1970的时间转换为现在时间
- JAVA常用的util工具类
- 时间转换 获取几分钟前的那一刻
- 蓝桥杯VIP题库之第一期——时间转换
- js和Java中将时间转换为多少天、小时、分钟问题
- 一般的struct tm和time_t之间的转换
- 通过出生年月日计算年龄
- PHP中获取时间的下一周,下个月等
- C#时间转换UInt64<--->DateTime
- Java时间戳转换为日期格式
- 数据库中10位或13位时间戳转换为标准时间
- java 的long 时间与objective-c的时间转换
- C语言时间日期函数总结