前端日常开发过程中,经常遇到接口返回时间戳,页面需要展示YYYY-MM-DD等的格式化后的日期,这里做了一个封装,对时间戳进行格式化,代码如下:
/**
* separator:分隔符
* timestamp:时间戳,可选参数,不传则获取当前日期
*/
function timestampToTime(separator,timestamp) {
// 创建一个Date对象
const date = timestamp?new Date(timestamp):new Date();
// 获取年、月、日
const year = date.getFullYear();
// getMonth()返回的月份从0开始,所以需要加1
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const day = date.getDate().toString().padStart(2, '0');
// 获取时、分、秒
const hours = date.getHours().toString().padStart(2, '0');
const minutes = date.getMinutes().toString().padStart(2, '0');
const seconds = date.getSeconds().toString().padStart(2, '0');
//日期拼接
const formatDate= `${year}${separator}${month}${separator}${day}`;
// 时间字符串
const time = `${hours}:${minutes}:${seconds}`;
return `${formatDate} ${time}`;
}
//对当前日期进行格式转换
timestampToTime('-')
//对传入日期进行转换
timestampToTime('-','Fri Apr 19 2024 16:08:48 GMT+0800 (中国标准时间)')
代码中使用字符串的 padStart() 方法,对小于10的数字,在数字前进行补0。