JavaScript格式化日期
javascript默认的日期格式,一般情况下,我们不会作为显示结果呈现给用户看,因为太难以阅读。
我们已经习惯用YYYY年MM月DD日
或YYYY/MM/DD
或YYYY-MM-DD
的形式,来展现日期。
网上有很多现成的库可以应用,比如:moment.js。但是如果我们仅仅想临时用一下,不想引入一个庞大的lib库,可以使用下面的自定义函数来格式化时间
函数定义
/** * 格式化日期 * @param date 日期对象 * @param fmt 格式化参数 * @return fmt 格式化后的时间字符串 */ function dateFormat (date, fmt) { 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(fmt)) { fmt = fmt.replace(RegExp.$1, (date.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 today = new Date(); dateFormat(today, 'yyyy-MM-dd'); // "2013-10-15" dateFormat(today, 'yyyy/MM/dd'); // "2013/10/15" dateFormat(today, 'yyyy-MM-dd hh:mm:ss'); // "2013-10-15 10:55:35" dateFormat(today, 'yy-MM-dd'); // "13-10-15"