UniCloud云函数时区问题UTC+0改为UTC+8标准北京时间(newDate问题)

双面发光字UniCloud云函数时区问题UTC+0改为UTC+8标准北京时间(newDate问题)
uniCloud云端的云函数使⽤的时区是utc+0,⽽不是 UTC+8,在云函数中使⽤时间时需特别注意。云函数在HBuilderX本地运⾏时,时区则是电脑的时间。在使⽤“时间戳”时两者没有差异可以规避时区问题,但如果要获取年、⽉、⽇、⼩时要注意时区的差异。
云函数获取时间:new Date( )
⾸先了解获取年⽉⽇时分秒基本⽅法:
var time=new Date();//获取当前时间给time变量
let year = FullYear()//年
let month = Month()+1//⽉-整数值0(1⽉)到11(12⽉)故需要加1。
let day = Date()//⽇
let hour = Hours()//时
let minute = Minutes()//分
let second = Seconds()//秒
由于服务器时间相差8⼩时,⽹上的解决⽅法就是在⼩时上直接+8得到当前的⼩时。
let hour = Hours()+8
这种⽅式简单便捷,但是你会发现当服务器时间16点以后+8会导致⼩时超过24⼩时没有进⼊下⼀天的问题⽹上的⽅法是在⼩时上+8获得本地的⼩时数这个⽅法治标不本。
于是在此逻辑基础上我们可以加上IF判断当+8超过24的时候Day加⼀以此类推即可获得正常的本地时间。
var Mday=new FullYear(),Month()+1,0).getDate();//获取当⽉有多少天自动脱水拖把
汽水热交换器
var y = FullYear();
var m = Month()+1;
var d = Date();
var h = Hours()+8;
if(h>23){h=h-24;d=d+1;if(d>Mday){d=1;m=m+1;if(m==13){m=1;y+1}}}
最终解决⽅案
连续铸造机为了⽅便造个轮⼦~写了个函数⽅便直接使⽤
复制即可直接调⽤,想要返回什么格式直接改return就⾏了。
//定义⼀个GetTime函数
大规模生产GetTime:function(){
var time=new Date();//获取服务器当前时间给time变量例:Fri Aug 20 2021 12:37:42 GMT+0
var Mday=new FullYear(),Month()+1,0).getDate();
let y = FullYear()//年
let m = Month()+1//⽉-整数值0(1⽉)到11(12⽉)故需要加1。
let d = Date()//⽇
let h = Hours()//时
let mm = Minutes()//分
let s = Seconds()//秒
if(h>23){h=h-24;d=d+1;if(d>Mday){d=1;m=m+1;if(m==13){m=1;y+1}}}
婴儿电动摇篮床
m = m <10?('0'+ m): m;d = d <10?('0'+ d): d;h=h <10?('0'+ h): h;mm = mm <10?('0'+ mm): mm;
return(y+'年'+m+'⽉'+d+'⽇'+h+':'+mm+':'+s)
},
var a=GetTime()
console.log(a)//2021年8⽉20⽇20:37:42

本文发布于:2024-09-25 02:27:12,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/125688.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:时间   函数   获取   超过   服务器   问题
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议