JavaScript处理客户端时间和北京时间时区的问题

JavaScript处理客户端时间和北京时间时区的问题

1. 无论在哪个时区都把时间戳当成北京时间的时间戳去处理

function getBeijingtime (i, val) {
    // i为时区值数字,北京为东八区则输进8,西5输入-5
    let d = new Date(val)
    //得到1970年1月1日到现在的秒数
    let len = val
    //本地时间与GMT时间的时间偏移差
    let offset = d.getTimezoneOffset() * 60000
    //得到现在的格林尼治时间
    let utcTime = len + offset
    // 得到一个时间对象
    return new Date(utcTime + 3600000 * 8)
}
getBeijingtime(8, 1615537232000)
// Fri Mar 12 2021 16:20:32

2. 无论在哪个时区都把时间当成北京时间 转成时间戳

function getTimeStamp (val){
    // 要转的时间
    let currentDate = new Date(val)
    //当前客户端对应的北京时间的年月日...
    let y = currentDate.getFullYear()   
    let m = currentDate.getMonth()
    let d = currentDate.getDate()
    let h = currentDate.getHours()
    let mm = currentDate.getMinutes()
    let ss = currentDate.getSeconds()
    // Date.UTC() 方法接受的参数同日期构造函数接受最多参数时一样,返回从1970-1-1 00:00:00 UTC到指定日期的的毫秒数。
    let timeObj =Date.UTC(y, m, d, h, mm, ss, 0) / 1000 - (8 * 60 * 60)
    return timeObj
}
getTimeStamp ('2021-03-12 16:20:32')
// 1615537232
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值