做过web开发的小伙伴们多少会遇到时间转换问题在Chrome浏览器和Safari浏览器的不同,报错或者时间格式等等,这里我就分享一下我在开发过程中遇到的一些问题
关于时间问题,做过日历的都知道,全球化时区处理,或者时间格式,裤链颤或者时间戳转化,这里我就这几种情况一一讨论
由于微信小程序的部分业务需要预定,所以会出现国外预定到国内时间会有偏差的问题,根本原因还是在于new Date(),它会获取当前系统时间,大部分手机是设置的是自动时间,所以会出现时区的偏差问题。
思考 :如果产品是某地的,那么预定时间应该为对应地的时区计算。所以需要维护定位与时区之间的关系
关于时区计算,因为我这边只用到了北京时间的情况,举个例子:
Safari浏览器中,进行 new Date("yyyy-MM-dd hh:mm:ss") 的时候,会出现报错Invalid Date,或者转换出问题的情况,原因是Safari并不支持此格式,所以需要调整格式化的方式。
ECMA-262 标准中( Date Time String Format )将日期格式规定为 YYYY-MM-DDTHH:mm:ss.sssZ ,其中, T 标识时间开始, Z 为唤侍相对于UTC(协调世界时 - International Atomic Time)的时间偏移量,可为 Z , +HH:mm 或 -HH:mm 。
思考 :要么正则替换为标准的 / 分割,要么在中间空白处加上 T ,看自己喜好
看文档是支持直接毫秒数时间戳转Date对象的,正常 *** 作也是如此。
PS :但是在微信小程序的iOS端胡败转过来的实际时间是UTC的时间,所以需要同步为当前时区时间,为了不影响Android的时间结果,所以通过转换2次的方式解决时间计算问题。
ECMA-262 标准来源参考: https://www.jianshu.com/p/a11196377048
注意:传入的dateTimeStamp时间戳以秒计时。如你想传以毫秒计时的值时先除1000getDateDiff:function (dateTimeStamp) {
var minute = 60
var hour = minute * 60
var day = hour * 24
var halfamonth = day * 15
var month = day * 30
var now = Date.parse(new Date())/1000 //有些特殊 不能使用 new Date()
var diffValue = now - dateTimeStamp
if(diffValue <0){return}
var monthC =diffValue/month
var weekC =diffValue/(7*day)
var dayC =diffValue/day
var hourC =diffValue/hour
var minC =diffValue/minute
var result = ''
if(monthC >段漏= 1){
result="" + parseInt(monthC) + "月前"
}
else if(weekC>=1){
世燃备 result="" + parseInt(weekC) + "周前"
}
else if(dayC>=1){
result=""+ parseInt(dayC) +"天前"
}
else if(hourC>=1){
result=""+ parseInt(hourC) +"小时前"
}
else if(minC>=1){
result=""+ parseInt(minC) +"分钟前"
}else{
搜毁 result="刚刚"
}
return result
}//时间戳转化为几天前,几小时前,几分钟前
游戏引擎:cocosCreator1.9.1
之前在开发阶段,遇到这样一个问题,用户在游戏界面时,突然把小游戏切换到后台(有可能是锁屏,接电话,收到微信信息等),长时间处于后台后,返回游戏顷轿后,小游戏会出现卡顿,机型较差的情况,设置界面卡住的问题。
暂时考虑的是这一套方案:当用户从后台 切换到前台的时间超过1分钟,则强制返回到游戏主界面或登录界面。这种方案主要芦虚参考的皇室战争。肯定还有优化的地方
微信小游戏提供两个api
wx.onShow(function callback)
监听小游戏回到前台的事件
wx.onHide(function callback)
监听小游戏隐藏到后台事件。锁屏、按 HOME 键退到桌面、显示在聊天顶部等 *** 作会触发此事件。
具体处理:
这里用到一个微信的api:
wx.getPerformance().now()
获取当前时间戳,单位:微秒
我这里的处理是将游戏直接切换到主场景,具体根据自己的游戏来。
第一次在上雀哗肆发技术的心得,之前都是放在有道云笔记上,后面都会整理出来,方便自己查看,也希望对需要的朋友有帮助。
--水可覆舟,起于毫末
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)