前端最讨厌的东西莫过于拼凑表单数据了~
需要的数据格式千奇百怪
今天碰到这样一个问题 后端需要的数据是这样的
date:{
year: 2024, month: 8 , day: 28, hour: 9 , minute: 7 : second : 15
}
其实时间就是2024-08-28 09:07:15这么个时间 不过凑起来可麻烦了
从datePicker拿到数据是一个日期对象
const date = dayjs(values.start_date?.times.format().valueOf());
!!这里需要加format()的原因时,不加应该就是utc时间 世界时~ 也就是加上时差就是本地时间了
拿到date之后拼给后端 问题就在这里。最后是像下面这样拼的
{
hour: date.hour(),
minute: date.minute(),
second: date.second(),
year: date.year(),
month: date.month() + 1,
day: date.date(),
}
这里犯了两个错误
一 month()方法拿到的数据是从0开始的 也就是一月的到的就是0 那我8月份得到的就是7 这个问题百度了一下解决了 不仅dayjs是这样,moment也是这样 都是从0开始
二 day()方法怎么看都是个获取日期的方法,可这家伙长得浓眉大眼的 其实他获取的是当前日期是星期几,真是服气啦 百度也很少有 真正的获取日期的方法如上 应该是date()方法
希望大家减少踩坑吧 有什么日期的问题,随时可以留言给我