JSON格式的时间“/Date(1530104033000)/”格式转为正常的年-月-日 格式的代码
解决方法1:
JS将/Date(1446704778000)/转换成str:
// 对Date的扩展,将 Date 转化为指定格式的String // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) // 例子: // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 // (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 Date.prototype.format = function (fmt) { var o = { "M+" : this.getMonth() + 1, //月份 "d+" : this.getDate(), //日 "h+" : this.getHours(), //小时 "m+" : this.getMinutes(), //分 "s+" : this.getSeconds(), //秒 "q+" : Math.floor((this.getMonth() + 3) / 3), //季度 "S" : this.getMilliseconds() //毫秒 }; fmt = fmt || "yyyy-MM-dd"; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); 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; }
var time = "\/Date(1530104033000)\/";
var dateStr = eval(time.replace(/\/Date\((\d+)\)\//gi, "new Date($1)")).format('yyyy-M-d h:m');
//关键代码:eval(time.replace(/\/Date\((\d+)\)\//gi, "new Date($1)")).format('yyyy-M-d h:m');
解决方法2:
//格式化日期字符串 String.prototype.jsonDateFormat = function (format) { var date, timestamp, dtObj timestamp = parseInt(this.toString().replace('/Date(', '').replace(')/', '').replace(/\+\d+/, ''), 10)// jsonDt.replace(/\/Date\((\d+)\)\//, "$1"); date = new Date(timestamp)// new Date(Number(timestamp)); dtObj = { 'M+': date.getMonth() + 1, // 月 'd+': date.getDate(), // 日 'h+': date.getHours(), // 时 'm+': date.getMinutes(), // 分 's+': date.getSeconds() // 秒 } // 因为年份是4位数,所以单独拿出来处理 if (/(y+)/.test(format)) { format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) } // 遍历dtObj for (var k in dtObj) { // dtObj的属性名作为正则进行匹配 if (new RegExp('(' + k + ')').test(format)) { // 月,日,时,分,秒 小于10时前面补 0 format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? dtObj[k] : ('00' + dtObj[k]).substr(('' + dtObj[k]).length)) } } return format }
调用示例:
var CreateTime="/Date(1571292406000)/"; CreateTime.jsonDateFormat('yyyy-MM-dd hh:mm:ss');
解决方法3:(建议采用)
引用第三方库:Moment.js http://momentjs.cn/
安装 npm install moment --save # npm yarn add moment # Yarn Install-Package Moment.js # NuGet spm install moment --save # spm meteor add momentjs:moment # meteor
<script type="text/javascript" src="https://cdn.bootcss.com/moment.js/2.24.0/moment.min.js"></script> <script type="text/javascript" src="https://cdn.bootcss.com/moment.js/2.24.0/locale/zh-cn.js"></script>
使用示例:
moment("/Date(1198908717056-0700)/"); // 2007-12-28T23:11:57.056-07:00 moment("/Date(1198908717056-0700)/").format("YYYY-MM-DD HH:mm:SS");//"2007-12-29 14:11:05"