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