做过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
iOS系统对贺袜尘js中的new Date()方法有格式要求错误的写法let dt = new Date("2020-09-03 19:57")
正确的禅禅写法let dt = new Date("2020/09/03 19:57")
转化好迹的方式
let tm = "2020-09-03 19:57"
let dt = new Date(tm.replace(/-/g,'/'))
苹果手机更新了系统软件到IOS10版本后,时钟软件就有了新的功能:就寝功能,这个是以前的旧版本系统所没有的。下面我就跟大家一起来学习一下这个苹果的新功能吧。开启分步阅读模式
步骤1:就寝功能的初步设置
01
就寝功能并没档陪有单独的软件,而是并在时钟功能里面。我们一起来打开时钟软件看看,到底有了什么改变吧。
02
点开时钟软件后就会发现,时钟软件的颜色有了很大的改变,配合就寝功能,整个时钟软件都变为了黑色,除了世界时钟、闹钟、秒表、计时器,中间就多了就寝两个字和一个床一样的图标,点击这个图标进入到就寝功能。
03
点击就寝后,就会有一个提示:欢迎使用就寝提醒,点击黄色的醒目的开始使用按钮,开始初步设定。
04
首先有个你希望什么时候起床的设置,默认的是上午7点。
05
大家可以滑动数字进行设置塌悔,上午设置完后,如果有需要,可以设置下午的数据。
06
第二项设置是闹钟应该在一周的哪几天响,默认的是七天。
07
需要用闹钟的几天就不要动,只需要将不需要闹钟的那几天,用手按一下键,让键变成灰色即可。
08
第三个设置是你需要几个小时的睡眠,默认的时间为8个小时,跟上面有数字设定的一样,用手滑动数字设定即可。
09
第四个设置是你希望就寝时间设在什么时间,默认的是,默认的就寝时15分钟前,如果需要修改,可以点击你需要的时间,在后面打勾即可设定成功。有15分钟前、30分钟前、45分钟前、团蠢正1小时前四个选择,大家可以根据自己的喜欢来选择。
10
第五个设定是设置闹钟铃声,可以根据自己的喜好选择,同样是点击后打勾来选择。
11
这样所有的设置就完成了,出现以下界面后,点击一下存储就好了。
12
存储后,就会自动转到就寝界面,以后每次打开就是这个界面了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)