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

被折叠的 条评论
为什么被折叠?



