描述 按所给的时间格式输出指定的时间 格式说明 对于 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 结果为 五 示例1 输入:formatDate(new Date(1409894060000), 'yyyy-MM-dd HH:mm:ss 星期w') 输出:2014-09-05 13:14:20 星期五
时间: 2024-03-21 15:37:54 浏览: 104
好的,这是一个时间格式化的问题。你可以使用以下代码实现:
```javascript
function formatDate(date, format) {
const week = ['日', '一', '二', '三', '四', '五', '六'];
const o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'H+': date.getHours(),
'h+': date.getHours() % 12 === 0 ? 12 : date.getHours() % 12,
'm+': date.getMinutes(),
's+': date.getSeconds(),
'w': week[date.getDay()]
};
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (const 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;
}
console.log(formatDate(new Date(1409894060000), 'yyyy-MM-dd HH:mm:ss 星期w'));
```
该函数接受两个参数:一个是 Date 对象,一个是时间格式字符串。在该函数中,我们先定义了一个数组 week,用于存储星期几的字符串。然后定义了一个对象 o,存储了各个时间值,包括月份、日期、小时、分钟、秒以及星期。接下来我们使用正则表达式匹配时间格式字符串中的各个时间单位,并将其替换成对应的时间值。最后返回格式化后的时间字符串。
阅读全文