概述
相信很多小伙伴在开发时都需要用到时间戳,而这个时间戳获取的服务器时间,有部分服务器可能直接获取到的时间就是北京时间,但是部分服务器获取到的服务器时间会和本地时间不同,特别是一些云开发服务器,微信云开发的服务器就是比北京时间要晚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
如下图(图网上找的):
格式化时间为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值。
大致就这些了吧,近期安好资源屋小程序可能会更新,将会支持密钥查找资源,广告查看资源,关键词查看资源,支付查看资源等功能,同时会支持分享带参数的小程序海报分享,这样可以直接在资源站上放上小程序海报,用户扫码直接通过相关的方式进入小程序获取资源,又多了一个变现的好办法。哈哈哈哈。
最后
以上就是秀丽悟空为你收集整理的关于服务器时区问题的完美解决方法的全部内容,希望文章能够帮你解决关于服务器时区问题的完美解决方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复