function formatDateTime (date, pattern) {
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(pattern)) {
pattern = pattern.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
}
for (var k in o) {
if (new RegExp('(' + k + ')').test(pattern)) {
pattern = pattern.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
}
}
return pattern
}
console.log(formatDateTime(new Date(), 'yyyy年MM月dd日 hh:mm:ss'))
console.log(formatDateTime(new Date(), 'yyyy年M月d日 hh:mm:ss'))
console.log(formatDateTime(new Date(1513051932000), 'yyyy年MM月dd日 hh:mm:ss'))
console.log(formatDateTime(new Date(1513051932000), 'yyyy年M月d日 hh:mm:ss'))