需求
1、默认当前时间 2、选择时间弹窗限制最大值、最小值 3、每次弹起更新最大值为当前时间,默认值为上次选中时间 4、== minDate: new Date(2023, 10, 1).getTime()
,也可以传入时间字符串new Date('2023-10-1 12:22').getTime()
==
html
< view class = "flex bb ptb-12" > < view> < text class = "red" > * < /text> 处理时间:< /view> < view class = "flex1 size-28" bindtap = "chooseTime" > < view class = "mr-8" > { { ququ2?ququ2:'请选择' } } < /view> < van-icon name = "arrow" /> < /view> < /view> < ! -- 弹窗 --> < van-popup show = "{{ isShowPop }}" bind:close= "onClosePop" position = "bottom" > < van-datetime-picker title = "处理时间" formatter = "{{formatter}}" value = "{{ currentDate }}" bind:confirm= "confirmPop" bind:cancel= "onClosePop" min-date= "{{minDate}}" max-date= "{{maxDate}}" /> < /van-popup>
data
ququ2: '' , isShowPop: false , currentDate: new Date ( ) . getTime ( ) , minDate: new Date ( 2023 , 10 , 1 ) . getTime ( ) , maxDate: new Date ( ) . getTime ( ) , formatter : function ( type, value ) { if ( type === 'year' ) { return ` ${ value} 年 ` ; } else if ( type === 'month' ) { return ` ${ value} 月 ` ; } else if ( type === 'day' ) { return ` ${ value} 日 ` ; } else if ( type === 'hour' ) { return ` ${ value} 时 ` ; } else if ( type === 'minute' ) { return ` ${ value} 分 ` ; } return value; } ,
方法
chooseTime ( ) { this . setData ( { maxDate: new Date ( ) . getTime ( ) , currentDate: this . data. ququ2 ? new Date ( this . data. ququ2) . getTime ( ) : new Date ( ) . getTime ( ) , isShowPop: true } ) } , confirmPop ( e ) { this . setData ( { ququ2: this . formatTimestamp ( e. detail) , isShowPop: false } ) } , onClosePop ( ) { this . setData ( { isShowPop: false } ) } , formatTimestamp ( timestamp ) { var date = new Date ( timestamp) ; var year = date. getFullYear ( ) ; var month = date. getMonth ( ) + 1 ; var day = date. getDate ( ) ; var hour = date. getHours ( ) ; var minute = date. getMinutes ( ) ; month = month < 10 ? '0' + month : month; day = day < 10 ? '0' + day : day; hour = hour < 10 ? '0' + hour : hour; minute = minute < 10 ? '0' + minute : minute; return ` ${ year} - ${ month} - ${ day} ${ hour} : ${ minute} ` ; } ,