相信很多小伙伴在开发时都需要用到时间戳,而这个时间戳获取的服务器事件,有部分服务器可能直接获取到的时间就是北京时间,但是部分服务器获取到的服务器时间会和本地时间不同,特别是一些云开发服务器,微信云开发的服务器就是比北京时间要晚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值。
大致就这些了吧,近期安好资源屋小程序可能会更新,将会支持密钥查找资源,广告查看资源,关键词查看资源,支付查看资源等功能,同时会支持分享带参数的小程序海报分享,这样可以直接在资源站上放上小程序海报,用户扫码直接通过相关的方式进入小程序获取资源,又一个变现的好办法。哈哈哈哈。
本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.i4qq.com/jpjc/gyfwqsqwtdwmjjfa.html