datepick 提交数据日期少一天,小8小时,时区格式化问题

在使用ant design 中,使用了

a-date-picker 以及 moment 和 axios等插件时

选择时间提交后,发现后台获取的时间少了8个小时,如只有日期的却少了一天。

后面经过跟踪发现是moment格式化使用了 

this.toDate().toISOString()

因此改写该moment日期格式化方法

/** 两种格式化日期时间方法,解决时间提交后因时区问题减了8小时
 *
 */
// 第一种方法,通过axios的方法增加过滤moment类型数据进行格式化
// axios.defaults.transformRequest.unshift((params) => {
//   if (params) {
//     Object.keys(params).forEach((key) => {
//       if (params[key] instanceof moment) {
//         params[key] = params[key].format('YYYY-MM-DDTHH:mm:ss.SSS\\Z')
//       }
//     })
//   }
//   return params
// })
// 第二种直接覆盖moment中的toISOString方法
moment.fn.toISOString = function () {
  return this.format('YYYY-MM-DDTHH:mm:ss.SSS[Z]')
}

你可能感兴趣的:(datepick 提交数据日期少一天,小8小时,时区格式化问题)