在使用JSON进行数据传输时,时间的格式化是一个很重要的问题。一般使用ISO 8601格式的时间字符串,但如果需要更精细的控制时间格式,可以使用format字符串来格式化时间。
// 创建一个日期对象 var date = new Date(); // 将日期对象格式化成YYYY-MM-DD HH:MM:SS的字符串 var formattedDate = date.getFullYear() + '-' + ('0' + (date.getMonth()+1)).slice(-2) + '-' + ('0' + date.getDate()).slice(-2) + ' ' + ('0' + date.getHours()).slice(-2) + ':' + ('0' + date.getMinutes()).slice(-2) + ':' + ('0' + date.getSeconds()).slice(-2); // 将格式化后的日期对象输出 console.log(formattedDate);
上面的代码通过使用Date对象的方法,将日期对象格式化成了YYYY-MM-DD HH:MM:SS格式的字符串。其中,getMonth方法返回的是0-11的月份,需要加1才是实际的月份。
如果想要更精细地控制时间格式,可以使用format字符串来格式化时间。
// 创建一个日期对象 var date = new Date(); // 定义一个格式化时间的函数 function formatDate(date, format) { var o = { "M+": date.getMonth() + 1, // 月份 "d+": date.getDate(), // 日 "h+": date.getHours(), // 小时 "m+": date.getMinutes(), // 分钟 "s+": date.getSeconds(), // 秒 "q+": Math.floor((date.getMonth() + 3) / 3), // 季度 "S": date.getMilliseconds() // 毫秒 }; if (/(y+)/.test(format)) { format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)); } for (var k in o) { if (new RegExp("(" + k + ")").test(format)) { format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); } } return format; } // 将日期对象格式化成YYYY年MM月DD日 HH时MM分SS秒的字符串 var formattedDate = formatDate(date, 'yyyy年MM月dd日 hh时mm分ss秒'); // 将格式化后的日期对象输出 console.log(formattedDate);
使用上面的代码,可以将日期对象格式化成具有更完整信息和更好阅读的中文格式。