解决vue axios提交日期,服务器接收少一天的问题

vue开发,页面上Element的日期选择器选择的日期,使用axios提交到服务器端。

选择时间提交后,发现后台获取的时间少了8个小时,如只有日期的会少一天,比如你选择的是 2025-12-10,服务器接收到的是2025-12-09。

这是因为用axios提交时需要qs.stringify()序列化,

qs默认的时间格式化为Date.prototype.toISOString;

返回的是格林威治时间比北京时间晚8小时

解决办法:

在vue工程的package.json文件引入moment包

复制代码
"moment": "^2.30.1"

在main.js里面添加代码

复制代码
// 解决时区和日期格式问题
import moment from 'moment'

Date.prototype.toISOString = function(){
    return moment(this).format('YYYY-MM-DD HH:mm:ss')
    //或者选择带时区的格式 YYYY-MM-DDTHH:mm:ss.SSS[Z]
    //return moment(this).format("YYYY-MM-DDTHH:mm:ss.SSS[Z]");
}

如果你不想全局处理,也可以这样:

复制代码
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
 })

相关推荐
涛涛ing1 小时前
OpenAI Astra 泄露:零样本生成 3D 网页,前端开发者慌了吗?
前端
ssshooter2 小时前
现在网页都能提供 MCP 了?!
前端·人工智能·程序员
杉氧2 小时前
状态管理变迁史:为什么我们放弃了 Redux 选择 Zustand?
android·前端·react native
cidy_982 小时前
OpenCode 手动配置火山方舟 Agent Plan 教程
前端
鹏多多2 小时前
PC 网站接入微信登录,这 10 个坑我替你踩完了!
前端·javascript·vue.js
律宏阔3 小时前
微信小程序使用 Orval + OpenAPI 自动生成接口:Axios 兼容踩坑记录
前端·微信小程序
律宏阔3 小时前
微信小程序集成 TDesign 完整记录:解决 NPM packages not found
前端·微信小程序
律宏阔3 小时前
微信小程序 ECharts 瘦身实战:分包异步化 + componentPlaceholder 避开主包 2MB 限制
前端·微信小程序
夏天要喝冰可乐3 小时前
从 Idea 到开源插件:我用 Vibe Coding 做了「文章摆渡」
前端·ai编程·vibecoding
小小小小宇3 小时前
pi agent
前端