在使用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]') }