ProFormTimePicker的使用

本文介绍了如何使用JavaScript函数renderTime对时间进行格式化,以及如何在React组件中结合ProFormTimePicker和dayjs库处理接口获取的已保存时间。当用户未修改时间时,避免重复转换,提高效率。

1、把时间转换成正确格式,并只保存时分秒。

  const renderTime = (date: any) => {

    let dateee = new Date(date).toJSON();

    let newDate = new Date(+new Date(dateee) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '')

    let t=newDate.split(' ')[1]

    return t

  }

调用renderTime函数:

renderTime(Time)

2、从接口获取的之前已保存的时间

import dayjs from 'dayjs'

const [Time,setTime]=useState<any>('')

const res = await xxx();

setTime(dayjs(res.data.Time))

3、组件使用

 <ProFormTimePicker

            name="Time"

            label=""

            initialValue={Time}     从接口获取的之前已保存的时间

            fieldProps={{

              format:'HH:mm:ss',

              onChange:onChange

            }}  />

4、在保存时,如果ProFormTimePicker时间组件的值并未改变,那就不需要经过renderTime函数的转换,直接将从接口获取的之前已保存的时间再次传给保存接口就可以。所以需要一个函数判断是否修改了时间

const [istimechanged,setistimechanged]=useState(false)

const onChange:TimePickerProps['onChange'] = ( timeString)=>{

    if(timeString!==Time){

      setistimechanged(true)

    }

    else{

      setistimechanged(false)

    } }

传给保存接口的参数:

let param = {

Time:istimechanged===true?renderTime(formdata.Time):formdata.Time

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值