做过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
话不多说,记录一下这个框架的使用~小程序使用轻量、可靠的小程序 UI 组件库 vant-weappGithub源码: https://github.com/youzan/vant-weapp
中文文档: https://youzan.github.io/vant-weapp/#/intro
1:打开微信开发者工具,填写自己的appid和项目名称,选择不使用云服务,新建一个项目。
2:右击在选择在终端打开
进入项目的根目录底下,注意,一定要进入根目录哦,使用cd ../返回上一级目录~
3:小程序已经支持使用 npm 安装第三方包,
这里通过 npm 安装
这里需要注意一下
npm i vant-weapp -S --production或者npm i @vant/weapp -S --production
引入的区别
使用npm i vant-weapp安装的时候,到时候在在app.json或index.json中引入组件,需要使用这样的路径
使用npm i @vant/weapp安装的时候,到时候在在app.json或index.json中引入组件,需要使用这样的路径(推荐,因为这个可以直接抄文档,不需要改变引入路径的~)
4:在微信开发工具执行npm 构建,点击工具里面,构建npm
构建过程需要等待一会儿,不要捉急
构建完会生成一个miniprogram_npm文件夹
如果构建完如果编译报错,再构建一次就好了
日历文档参照一下
5:使用vant-weapp日历组件
我这里对日期的处理,是需要这样的格式YYYY-MM-dd
所以在对选中的日期做了一些处理和判断~
wxml
js
json
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)