最近工作中踩的坑

  • 1、页面中若规定具体的字体,则不能使用span标签,否则在别的系统中查看会出现样式不一致
  • 2、在微信小程序中,不能使用new Date,可用moment代替。否则会没有任何效果
  • 3、在H5页面中,调用地图时,必须设置地图的具体高度,不能以百分比显示,否则会被解析成0
  • 4、在微信小程序中,若想用 new Date(date).getTime() 获取日期的时间戳, 则必须将2018-09-09 23:23:23 这种类型转变成 2018/09/09 23:23:23, 否则苹果手机不兼容

问题1:
new Date().getTime(),用这个方法来获取时间戳,在苹果手机上就是NaN,在Google浏览器就是没有问题!

原因:通过在网上找资料才知道是因为ios在处理时间戳的时候,时间的格式与其他端不一样!!!
IOS系统以及IE浏览器不支持2018-08-30这样的格式的时间

解决方法:将2018-08-30这样的格式转变成2018/08/30这样的格式

代码:
1.获取当前时间戳:

const time = dayjs().format('YYYY/MM/DD HH:mm')

new Date(time).getTime()

dayjs().valueOf()
  1. 获取指定日期时间戳,可以通过replace来进行替换
new Date(item.time.replace(/-/g,'/')).getTime()

dayjs(item.time).valueOf()

问题2:
小程序picker组件mode=multiSelecto的bindcolumnchange事件在ios系统不会触发。微信开发者工具中也存在该问题

原因:
小程序picker组件mode=multiSelector必须设置value属性,否则ios系统bindcolumnchange事件不会触发

解决方法:
在组件中增加value属性,并且在js里面初始化multiIndex这个变量,否则会导致第一次选择的时候不会触发bindcolumnchange事件,必须要点过确认之后,第二次选择才能触发。

代码:

<picker
mode="multiSelector"
@change="bindMultiPickerChange"
@columnchange="bindMultiPickerColumnChange"
range="{{dateRange}}"
value="{{multiIndex}}"
>



data = {
multiIndex: [0, 0, 0, 0, 0]
}

注意:value的值应该是一个数组,几级联动就设置length为几的数组

原文地址:https://www.cnblogs.com/zpsakura/p/12395475.html