时间戳根据浏览器当前时区转换成日期时间

1、获取浏览器语言


let languages = navigator.languages 
console.log(languages ) 
// ['zh-CN', 'en', 'zh']
let language = navigator.language 
console.log(language ) 
// 'zh-CN'

2、获取浏览器时区


let timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone 
console.log(timeZone ) 
// 'Asia/Shanghai'

3、date.toLocaleString
根据本地时间惯例,把 Date 对象转换为一个字符串,表示该日期和时间,具体格式取决于执行环境的地区设置
3.1 默认


let date = new Date();  
console.log(date.toLocaleString())
//  2024/8/14 16:07:05

3.2 使用特定的地区设置


let date = new Date();  
console.log(date.toLocaleString('en-US')) 
//  8/14/2024, 4:10:03 PM

3.3 自定义设置


let date = new Date();
let dateTime=date.toLocaleString('zh-CN', {  
  year: 'numeric',  
  month: 'long',  
  day: 'numeric',  
  hour: '2-digit',  
  minute: '2-digit',  
  second: '2-digit',  
  hour12: false // 使用24小时制  
})
console.log(dateTime) 

// 2024年8月14日 16:11:31

4、封装一个时间戳转换日期时间的方法


export const convertToDate = (isoString: string) => {
    const date = new Date(isoString)
    const dateTime= date.toLocaleString(getBrowserLanguage(), {
        year: 'numeric',
        month: 'numeric',
        day: 'numeric',
        hour: 'numeric',
        minute: 'numeric',
        second: 'numeric',
        timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
        hour12: false
    })
    return dateTime
}

export const getBrowserLanguage = () => {
    let language = navigator.languages[0] || navigator.language
    if (language.indexOf('en') > -1) {
        return 'en-US'; //返回en默认设置美国时间
    } else {
        return language
    }
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值