import { View } from '@tarojs/components' import { memo, useRef, useState } from 'react' import dayjs from 'dayjs' import NormalButton from '../normalButton' import styles from './index.module.scss' import AtCalendar from '@/components/calendar/index' import Popup from '@/components/popup' type DateArg = string | number | Date interface Props { end?: DateArg start?: DateArg onSelectDate?: (any, isSameDay: boolean) => void } const TimePicker = (props: Props) => { const { start = '', end = '', onSelectDate } = props const [time, setTime] = useState({}) const isSameDay = useRef(false) const handTime = (e) => { const { start, end } = e.value isSameDay.current = start === end // 如果选的是同一天的日期, end 自动加一天 if (!end) { // 判断如果没选下一天的时候 e.value.end = `${dayjs(start).add(1, 'day').format('YYYY-MM-DD')} 00:00:00` isSameDay.current = true } else if (start === end) { e.value.end = `${dayjs(start).add(1, 'day').format('YYYY-MM-DD')} 00:00:00` } else { e.value.start = `${dayjs(start).format('YYYY-MM-DD')} 00:00:00` e.value.end = `${dayjs(end).format('YYYY-MM-DD')} 23:59:59` } console.log('e===>', e) setTime(e) } // 由于小程序的bug,部分ios和安卓显示时间的时候会有问题,原因是格式化时有`-`这个横杠 被dayjs解决了 return ( <> handTime(e)} /> onSelectDate?.(time, isSameDay.current)} size="normal" round customClassName={styles['sure-box']}>确认 ) } export default memo(TimePicker)