2021-05-31 20:57:41
在前端 JavaScript 中,格式化日期可以通过多种内置方法实现,以下是具体方案及示例:
1. 使用内置方法快速格式化toLocaleDateString()仅格式化日期部分(年-月-日),输出格式依赖浏览器语言设置:
const date = new Date();const formattedDate = date.toLocaleDateString(); // 默认格式,如 "2023-03-08"toLocaleTimeString()仅格式化时间部分(时:分:秒):
const formattedTime = date.toLocaleTimeString(); // 如 "10:34:25"toLocaleString()同时格式化日期和时间:
const formattedString = date.toLocaleString(); // 如 "2023-03-08 10:34:25"2. 使用 Intl.DateTimeFormat API(灵活控制格式)通过配置选项自定义输出格式(如月份缩写、12/24小时制等):
const formatter = new Intl.DateTimeFormat('en-US', { year: 'numeric', month: 'short', // 或 'long'(March)、'narrow'(M) day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true // 默认true(12小时制),false为24小时制});const formattedDate = formatter.format(date); // 如 "Mar 8, 2023, 10:34:25 AM"3. 自定义格式(手动拼接)若需完全控制格式(如 YYYY-MM-DD HH:mm:ss),可提取日期各部分后拼接:
const padZero = num => num.toString().padStart(2, '0');const year = date.getFullYear();const month = padZero(date.getMonth() + 1); // 月份从0开始const day = padZero(date.getDate());const hours = padZero(date.getHours());const minutes = padZero(date.getMinutes());const seconds = padZero(date.getSeconds());const customFormat = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;// 输出:2023-03-08 10:34:254. 第三方库(推荐复杂场景)对于复杂需求(如时区处理、国际化),可使用库如:
根据项目需求选择合适方案即可。