解决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
 })

相关推荐
于慨1 天前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
石小石Orz1 天前
油猴脚本实现生产环境加载本地qiankun子应用
前端·架构
从前慢丶1 天前
前端交互规范(Web 端)
前端
像我这样帅的人丶你还1 天前
别再让JS耽误你进步了。
css·vue.js
@yanyu6661 天前
07-引入element布局及spring boot完善后端
javascript·vue.js·spring boot
CHU7290351 天前
便捷约玩,沉浸推理:线上剧本杀APP功能版块设计详解
前端·小程序
GISer_Jing1 天前
Page-agent MCP结构
前端·人工智能
王霸天1 天前
💥别再抄网上的Scale缩放代码了!50行源码教你写一个永不翻车的大屏适配
前端·vue.js·数据可视化
小领航1 天前
用 Three.js + Vue 3 打造炫酷的 3D 行政地图可视化组件
前端·github
@大迁世界1 天前
2026年React大洗牌:React Hooks 将迎来重大升级
前端·javascript·react.js·前端框架·ecmascript