Json字符串中的日期格式化函数
ConvertJsonDate: function (jd) { var d = new Date(parseInt(jd.replace("/Date(", "").replace(")/", ""), 10)); if (d.toString().split("-").length > 1) { return d; } var month = { "Jan": 1, "Feb": 2, "Mar": 3, "Apr": 4, "May": 5, "Jun": 6, "Jul": 7, "Aug": 8, "Sep": 9, "Oct": 10, "Nov": 11, "Dec": 12 }; var str = d.toString().split(" "), dd = str[5] + "-" + month[str[1]] + "-" + str[2] + " " + str[3]; var ddd = new Date(Date.parse(dd.replace(/-/g, "/"))); var week = { "Mon": "/u65e5", "Tue": "/u4e00", "Wed": "/u4e8c", "Thu": "/u4e09", "Fri": "/u56db", "Sat": "/u4e94", "Sun": "/u516d", "0": "/u65e5", "1": "/u4e00", "2": "/u4e8c", "3": "/u4e09", "4": "/u56db", "5": "/u4e94", "6": "/u516d" }; var o = { "M+": ddd.getMonth() + 1, //月份 "d+": ddd.getDate(), //日 "h+": ddd.getHours() % 12 == 0 ? 12 : ddd.getHours() % 12, //小时 "H+": ddd.getHours(), //小时 "m+": ddd.getMinutes(), //分 "s+": ddd.getSeconds(), //秒 "q+": Math.floor((ddd.getMonth() + 3) / 3), //季度 "S": ddd.getMilliseconds() //毫秒 }; var fmt = dd; if (arguments.length == 2) { fmt = arguments[1]; if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (ddd.getFullYear() + "").substr(4 - RegExp.$1.length)); } if (/(E+)/.test(fmt)) {//E(五);EE(周五),EEE(星期五) fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "/u661f/u671f" : "/u5468") : "") + week[ddd.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 unescape(fmt.replace(/\//g, ‘%‘)); }
需要注意的是,类似‘\u5468’为UTF8编码字符,需要将‘\‘替换为‘%‘,然后调用unescape才能正常显示为中文。
如需把正常的代码转换成例如:"\u4f60\u597d\u554a"这样的字符串,需要调用方法escape(str).replace(/%/g,‘\\‘);