最近做项目遇到了需要将时间格式化成指定的样式,原生js中并没有可以直接使用的方法,所以只能在网上搜集大神们的做法,在这里分享给需要的小伙伴。
// 获取指定格式的日期
dateFtt (fmt, date) {
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) {
// eslint-disable-next-line eqeqeq
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 now = new Date();
var nowStr = dateFtt("yyyy-MM-dd hh:mm:ss", now);
console.log(nowStr) // 2019-11-14 16:15:30