From 12d7dcf7e9f18c8f1a61aede006e69fca48d67a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=BB=BA=E4=B8=9C?= <762022369@qq.com> Date: Thu, 12 Jul 2018 21:32:49 +0800 Subject: [PATCH] =?UTF-8?q?[bugfix]=20DateTime:=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=9D=9E=E6=A0=87=E5=87=86=20iso=20=E6=A0=BC=E5=BC=8F=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=88=9D=E5=A7=8B=E6=97=B6=E9=97=B4=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=20(#355)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: 修复非标准 iso 格式时间初始时间错误的问题 * 增加返回值 date --- example/pages/datetime/index.js | 4 ++++ packages/datetime-picker/README.md | 2 +- packages/datetime-picker/date-picker.js | 3 +-- packages/datetime-picker/index.js | 7 ++++++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/example/pages/datetime/index.js b/example/pages/datetime/index.js index e0f6fdee..fb9e2d00 100644 --- a/example/pages/datetime/index.js +++ b/example/pages/datetime/index.js @@ -13,5 +13,9 @@ Page({ nativeChange ({detail}) { this.setData({pickerView2: detail.value.join('-')}) + }, + + change ({ detail: { value, date } }) { + console.log('value is', value, 'and date is', date) } }) \ No newline at end of file diff --git a/packages/datetime-picker/README.md b/packages/datetime-picker/README.md index 2c06559c..7e4280d8 100644 --- a/packages/datetime-picker/README.md +++ b/packages/datetime-picker/README.md @@ -35,7 +35,7 @@ | not-use | `Array` | `否` | 无 | 不需要显示的列 可选择`years`, `months`, `days`, `hours`, `minutes`, `seconds`中的多个 | | picker-view | `Boolean` | `否` | 无 | 如果为 true,相当于 picker-view 组件 | | format | `String` | `否` | YYYY-MM-DD HH:mm:ss | 设置选中的时间显示的格式,支持 _YYYY,yyyy,YY,yy,MM,M,DD,dd,D,d,HH, hh,H,h,mm,m,ss,s_ | -| bindchange | `String` | `是` | 无 | 用户点击`确认`触发该事件,返回值为按“年,月,日,时,分,秒”顺序的数组,可以通过`detail.value`获取 | +| bindchange | `String` | `是` | 无 | 用户点击`确认`触发该事件,返回值为按“年,月,日,时,分,秒”顺序的数组,可以通过`detail.value`获取;3.0.8 后新增 date 值,表示当前选择时间的对象 | | bindcancel | `String` | `否` | 无 | 用户点击`取消`触发该事件 | ### 方法 diff --git a/packages/datetime-picker/date-picker.js b/packages/datetime-picker/date-picker.js index 29c6db97..ba266e56 100644 --- a/packages/datetime-picker/date-picker.js +++ b/packages/datetime-picker/date-picker.js @@ -28,12 +28,11 @@ module.exports = class DatePicker { date = date || this._date || new Date // toUTCString ISO 格式部分 ios 手机会失败 - if (typeof date === 'string' && date.indexOf('-') > 0) { + if (new Date(date).toString() === 'Invalid Date' && typeof date === 'string' && date.indexOf('-') > 0) { date = iso2utc(date) } let d = new Date(date); - console.log(d); let y = d.getFullYear(); let m = d.getMonth() + 1; diff --git a/packages/datetime-picker/index.js b/packages/datetime-picker/index.js index 35fb54b9..aa674458 100644 --- a/packages/datetime-picker/index.js +++ b/packages/datetime-picker/index.js @@ -149,8 +149,13 @@ Component({ return +item[value[index]]; }); + let day = data.slice(0, 3) + let time = data.slice(3, 6) + let date = new Date(`${ day.join('/') } ${ time.join(':') }`) + this.triggerEvent('change', { - value: data + value: data, + date }); // 手动触发 columnchange