JavaScript中的Date()函数之时间格式化

本文详细介绍了JavaScript中的Date对象基础使用、常用API如getFullYear()等,重点讲解了toLocaleString()函数的日期时间格式化以及字符串方法padStart()在日期显示中的应用。并通过封装函数简化日期格式化过程。
摘要由CSDN通过智能技术生成

一、基本使用

  • Date()没有参数时 返回当前时间
  • Date(timer)有参数时 返回参数设置的时间

二、常用API

let date = new Date();
console.log(date.getFullYear()); //当前日期的年 2022
console.log(date.getMonth() + 1); //月份+1 由于月份是0-11计算 所以需要 +1 
console.log(date.getDate()); // 日
console.log(date.getDay()); // 星期几  注意:星期日返回的是0
console.log(date.getHours()); // 时
console.log(date.getMinutes()); // 分
console.log(date.getSeconds()); // 秒

三、toLocaleString()函数

该方法可以格式化日期和时间,将时间转为字符串,同时衍生出另外两种分别获得日期和时间的方法。

  • 字段说明:

    • 日期+时间: toLocaleString()
    • 日期: toLocaleDateString()
    • 时间: toLocaleTimeString()
  • 参数说明 (非必填)

    • 'en-US', { timeZone: 'America/New_York' }
    • en-US : 地区设置(String)
    • { timeZone: 'America/New_York' }: 日期时间格式和时区信息(Object)
let timer = new Date()
console.log(timer.toLocaleString()) // 日期+时间 2023/5/28 23:07:35
console.log(timer.toLocaleDateString()) // 日期 2023/5/28 
console.log(timer.toLocaleTimeString()) // 时间 23:10:31 

// 两个参数:(地区设置,日期时间格式和时区信息)
console.log(time.toLocaleString('en-US', { timeZone: 'America/New_York' }))
// 打印结果 5/28/2023, 11:08:39 AM

 四、字符串方法:padStart()

string.padStart(字符串长度, 填充元素) : 用填充元素填充string字符串,使得产生的新字符串达到所设置的长度(参数一:字符串长度)。

  • padStart 从原字符串左侧开始填充
  • padEnd 从原字符串右侧开始填充
let str = 'str'
str.padStart(5,'0') // "00str"
    
// 不指定填充元素时,以空字符串填充
str.padStart(5) // "  abc" 
// 填充元素超出指定长度时,从左->右对填充元素截取
str.padStart(6,'123465'); // "123str"
// 原字符串长度大于设定长度时,以原字符串长度为准 不截断原字符串
str.padStart(2); // "str"

日期格式化:

  console.log(time.getFullYear().toString().padStart(4, '0')) // 年 2023
  console.log((time.getMonth() + 1).toString().padStart(2, '0')) // 月 05
  console.log(time.getDate().toString().padStart(2, '0')) // 日 29
  console.log('星期' + (time.getDay() === 0 ? 7 : time.getDay())) // 周 星期1
  console.log(time.getHours().toString().padStart(2, '0')) // 时 01
  console.log(time.getMinutes().toString().padStart(2, '0')) // 分 19
  console.log(time.getSeconds().toString().padStart(2, '0')) // 秒 55

封装后:

let time = new Date()
// 定义格式化封装函数
function formaData(timer) {
    const year = timer.getFullYear()
    const month = timer.getMonth() + 1 // 由于月份从0开始,因此需加1
    const day = timer.getDate()
    const hour = timer.getHours()
    const minute = timer.getMinutes()
    const second = timer.getSeconds()
    return `${pad(year,4)}-${pad(month)}-${pad(day)}${pad(hour)}:${pad(minute)}:${pad(second)}`
}
// 定义具体处理标准
// timeEl 传递过来具体的数值:年月日时分秒
// total 字符串总长度 默认值为2
// str 补充元素 默认值为"0"
function pad(timeEl, total = 2, str = '0') {
    return timeEl.toString().padStart(total, str)
}
// 调用函数
console.log(formaData(time)) // 2023-05-29 00:30:19

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值