在使用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]')
}版权声明:本文为crsit原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。