解决方法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"
如果这篇文章对您有帮助,您可以打赏我
技术交流QQ群:15129679