小程序自定义组件里面:
this .triggerEvent( 'onselectdate' , { date: dateStr }); |
formatTime是自己写的时间格式化
这里两个log打印出来的都是合法日期字符串,
–> 2017-11-16
–> 2017-12-12
诡异的事情来了,triggerEvent,在模拟器上,无论使用dateStr,还是dateStr1作为事件参数,在引用组件的页面上,e.detail都是正常的:
{ date: ‘2017-11-16’ } 或者 { date: ‘2017-12-12’ }
但是在真机上,
使用dateStr1,正常,e.detail是 { date: ‘2017-12-12’ },
使用dateStr有问题,e.detail是 { date: ‘NaN-aN-aN’ },
什么情况????
问题查出来了,记录一下。
不知道是各平台js引擎的问题还是小程序问题
对于
const a = new Date(‘2017-12-12 12:12:12’)
在android上是正常的,在ios上a肯定是null
换成
const a = new Date(‘2017/12/12 12:12:12’)
就ok了
好吧,formtime应该是没问题
仔细调试后发现
出在这几行上,感觉仍然是真机和模拟器的问题啊:
console.log(selected.join( '-' ) + ' ' + this .data.time); const date = selected.join( '-' ) + ' ' + this .data.time; console.log(date, new Date(date)) |
注意,第一个log在真机和模拟器删个一样:
>> 2017-11-16 17:52
第二个log就出问题了
真机上:
>> null null
模拟器上:
2017-11-16 17:17 Thu Nov 16 2017 17:17:00 GMT+0800 (中国标准时间)
无论如何 date 不该是null吧。。。。