js 格式化时间

方法一:使用toLocaleStringtoLocaleDateString/toLocaleTimeString

Date对象提供了toLocaleString()toLocaleDateString()toLocaleTimeString()方法,这些方法允许你根据本地时间格式来显示日期和时间。虽然它们不直接提供高度自定义的格式选项,但对于大多数本地化需求来说已经足够。

let date = new Date();  
  
// 使用本地格式显示完整的日期和时间  
console.log(date.toLocaleString());  
  
// 仅显示日期  
console.log(date.toLocaleDateString());  
  
// 仅显示时间  
console.log(date.toLocaleTimeString());  
  
// 也可以指定语言和选项  
console.log(date.toLocaleString('zh-CN', { year: 'numeric', month: 'long', day: 'numeric' }));

方法二:手动格式化

对于需要高度自定义时间格式的场景,你可能需要手动编写函数来格式化时间。这通常涉及到从Date对象中提取年、月、日、时、分、秒等,然后按照指定的格式拼接这些值。

function formatDate(date, format = 'yyyy-MM-dd HH:mm:ss') {  
    let year = date.getFullYear();  
    let month = String(date.getMonth() + 1).padStart(2, '0');  
    let day = String(date.getDate()).padStart(2, '0');  
    let hour = String(date.getHours()).padStart(2, '0');  
    let minute = String(date.getMinutes()).padStart(2, '0');  
    let second = String(date.getSeconds()).padStart(2, '0');  
  
    let obj = {  
        'M+': month, // 月份  
        'd+': day, // 日  
        'h+': hour, // 小时  
        'm+': minute, // 分  
        's+': second, // 秒  
        'yyyy': year, // 年份  
        'MM': month,  
        'dd': day,  
        'HH': hour,  
        'mm': minute,  
        'ss': second  
    };  
  
    for (let k in obj) {  
        if (new RegExp(`(${k})`).test(format)) {  
            format = format.replace(RegExp.$1, (RegExp.$1.length === 1) ? (obj[k]) : (('00' + obj[k]).substr(('' + obj[k]).length)));  
        }  
    }  
  
    return format;  
}  
  
let date = new Date();  
console.log(formatDate(date, 'yyyy-MM-dd HH:mm:ss'));

方法三:使用第三方库

使用Moment.js
// 首先需要引入moment.js  
// <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>  
  
let date = new Date();  
console.log(moment(date).format('YYYY-MM-DD HH:mm:ss'));
使用date-fns
// 首先需要安装date-fns  
// npm install date-fns  
  
import { format } from 'date-fns';  
  
let date = new Date();  
console.log(format(date, 'yyyy-MM-dd HH:mm:ss'));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值