关于服务器时区问题的完美解决方法

fd08c7bfb129f9295a892e8c690956bb.png

相信很多小伙伴在开发时都需要用到时间戳,而这个时间戳获取的服务器时间,有部分服务器可能直接获取到的时间就是北京时间,但是部分服务器获取到的服务器时间会和本地时间不同,特别是一些云开发服务器,微信云开发的服务器就是比北京时间要晚8个小时,这主要是因为服务器时区的不一样。

关于时区的介绍就不多说了,大家可以自己去搜索看看。微信云开发的时区修改很简单,改一下环境变量就是,可是有一些服务器改不了时间变量怎么办呢,下面我来给大家介绍一下。

首先是确定时区,也就是校准时间,一些服务器的时间与本地时间相差8小时,但是有可能部分相差的时间不一样,所以我们首先将所有时间转化为UTC时间(格林威治时间),这个时区与北京时间相差正好是8个小时,然后在这个时间基础上加上8个小时就行了,如下:

let date = new Date();
let timezoneOffset = date.getTimezoneOffset();
let time = date.getTime() + timezoneOffset * 60 * 1000 + 480 * 60 * 1000;

getTimezoneOffset()这个方法就是用来获取当前时间与UTC时间的一个差值(单位为分钟),然后得到后我们再加上8个小时就可以了,随便提一下微信云开发服务器修改时区的方法:

直接点击云函数配置,然后新增环境变量:

TZ=>Asia/Shanghai

如下图(图网上找的):

fe0fefc089f6544c244deb1eb267e92f.png


格式化时间为yyMMddHHmmssSSS格式

这个是最近用到的一个时间戳格式,看网上封装的有点乱,给大家分享一下:

format = () => {
    let date = new Date();
    let timezoneOffset = date.getTimezoneOffset();
    let time = date.getTime() + timezoneOffset * 60 * 1000 + 480 * 60 * 1000;
    let myDate = new Date(time);
    let y = myDate.getFullYear();
    let M = myDate.getMonth() + 1;
    let d = myDate.getDate();
    let H = myDate.getHours();
    let m = myDate.getMinutes();
    let s = myDate.getSeconds();
    let S = myDate.getMilliseconds();
    if (M < 10) {
        M = '0' + M
    }
    if (d < 10) {
        d = '0' + d
    }
    if (H < 10) {
        H = '0' + H
    }
    if (m < 10) {
        m = '0' + m
    }
    if (s < 10) {
        s = '0' + s
    }
    if (S < 100 && S > 9) {
        S = '0' + S
    }
    if (S < 10) {
        S = '00' + S
    }


    return y + M + d + H + m + s + S


};

这样直接使用format()就可以获取服务器北京时间且格式为yyMMddHHmmssSSS的时间戳了,可以根据需求自己制定return值。

大致就这些了吧,近期安好资源屋小程序可能会更新,将会支持密钥查找资源,广告查看资源,关键词查看资源,支付查看资源等功能,同时会支持分享带参数的小程序海报分享,这样可以直接在资源站上放上小程序海报,用户扫码直接通过相关的方式进入小程序获取资源,又多了一个变现的好办法。哈哈哈哈。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁代码

如果帮助了你,不妨也帮助我一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值