js本身提供了轉換date的方法,這里做下記錄:
console.log(newDate.toLocaleDateString()); // 2017年3月30日 console.log(newDate.toLocaleString()); // 2017年3月30日 下午8:33:24
也可自己定義返回的格式,可以自己定義一個轉換方法:
function formatDate(date, fmt) { if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); console.log(date.getFullYear()); } let o = { 'M+': date.getMonth() + 1, 'd+': date.getDate(), 'h+': date.getHours(), 'm+': date.getMinutes(), 's+': date.getSeconds() }; for (let k in o) { if (new RegExp(`(${k})`).test(fmt)) { let str = o[k] + ''; fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str)); } } return fmt; }
如果最終的日期格式為:2017-3-20 21:52,還需要下面這個函數處理:
function padLeftZero(str) { return ('00' + str).substr(str.length); }
注意:只有在正則是組合,即正則表達式在()中書寫時,才會有RegExp.$1的值,否則為空
