评论

picker组件mode=date 苹果手机IOS和安卓手机start和end兼容问题处理

picker组件mode=date 苹果手机IOS和安卓手机start和end兼容问题处理

大家在使用picker组件的date模式时,如果设置了start或者end参数,但是没效果,原因是IOS对日期格式有兼容问题,也算是IOS历史遗留问题。

解决方案:

1、获取系统信息:用 wx.getDeviceInfo().system 或者 __wxConfig.system

2、判断是否iOS:

let isIos = __wxConfig.system.toLowerCase().startsWith('ios');

3、格式化日期

let separator = isIos ? '/' : '-';

let d = new Date();

let end = d.toJSON().split('T')[0].split('-').join(separator);

console.log(end);


效果如下

最后一次编辑于  01-26  
点赞 1
收藏
评论

1 个评论

  • new world
    new world
    02-04

    最近刚好遇见了个相同的问题,picker的mode=date时,选择的日期还是能超过设定的start和end,这个问题很诡异,只出现在极少数iphone机型中。我是这样设置start和end的值的(下图),在其他iphone机型中都是正常的。难道iso的机型要写成YYYY/MM/DD这种格式才行吗,楼主帮忙回答下,非常感谢而且官方文档上也是这样推荐使用的

    反正出现选择到超出的日期就很奇怪。

    02-04
    赞同
    回复 1
    • 星跃
      星跃
      03-04
      是的
      03-04
      回复
登录 后发表内容