使用 JavaScriptSerializer 序列化生成 Json 字符串时,DateTime 会被转成形如 /Date(1369377245460)/ 的格式。
以下函数用于格式化输出时间,使用方法类似于C# 的 Datetime.ToString
//日期格式转换 function formatDate(str, format) { if (!str) return ''; var i = parseInt(str.match(/[-]*\d+/g)[0]); if (i < 0) return ''; var d = new Date(i); if (d.toString() == 'Invalid Date') return ''; //处理客户端时区不同导致的问题 //480 是UTC+8 var utc8Offset = 480; d.setMinutes(d.getMinutes() + (d.getTimezoneOffset() + 480)); format = format || 'MM/dd hh:mm:ss tt'; var hour = d.getHours(); var month = FormatNum(d.getMonth() + 1) var re = format.replace('YYYY', d.getFullYear()) .replace('YY', FormatNum(d.getFullYear() % 100)) .replace('MM', FormatNum(month)) .replace('dd', FormatNum(d.getDate())) .replace('hh', hour == 0 ? '12' : FormatNum(hour <= 12 ? hour : hour - 12)) .replace('HH', FormatNum(hour)) .replace('mm', FormatNum(d.getMinutes())) .replace('ss', FormatNum(d.getSeconds())) .replace('tt', (hour < 12 ? 'AM' : 'PM')); return re; function FormatNum(num) { num = Number(num); return num < 10 ? ('0' + num) : num.toString(); } }
console.log(formatDate('/Date(1369377245460)/', 'dd/MM HH:mm:ss'));