前端笔试题整理——时间格式化输出
题目描述:按所给的时间格式输出指定的时间
格式说明
对于 2014.09.05 13:14:20
yyyy: 年份,2014
yy: 年份,14
MM: 月份,补满两位,09
M: 月份, 9
dd: 日期,补满两位,05
d: 日期, 5
HH: 24制小时,补满两位,13
H: 24制小时,13
hh: 12制小时,补满两位,01
h: 12制小时,1
mm: 分钟,补满两位,14
m: 分钟,14
ss: 秒,补满两位,20
s: 秒,20
w: 星期,为 [‘日’, ‘一’, ‘二’, ‘三’, ‘四’, ‘五’, ‘六’] 中的某一个,本 demo 结果为 五
示例
输入:formatDate(new Date(1409894060000), ‘yyyy-MM-dd HH:mm:ss 星期w’)
输出:2014-09-05 13:14:20 星期五
解题思路
function formatDate(time, format) {
//保持格式统一,都转化为字符串像是
let year = time.getFullYear().toString()
let month = time.getMonth() + 1
//补零
month = month < 10 ? '0' + month : month.toString()
let date = time.getDate()
date = date < 10 ? '0' + date : date.toString()
let hour = time.getHours()
hour = hour < 10 ? '0' + hour : hour.toString()
let min = time.getMinutes()
min = min < 10 ? '0' + min : min.toString()
let sed = time.getSeconds()
sed = sed < 10 ? '0' + sed : sed.toString()
let index = time.getDay()
let dayArr = ['日', '一', '二', '三', '四', '五', '六']
//格式化输出
let res = format
.replace(/yyyy/, year)
.replace(/MM/, month)
.replace(/dd/, date)
.replace(/HH/, hour)
.replace(/mm/, min)
.replace(/ss/, sed)
.replace(/w/, dayArr[index])
return res
}
console.log(
formatDate(new Date(1409894060000), 'yyyy-MM-dd HH:mm:ss 星期w')
)