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

相关推荐
linux_cfan1 小时前
videojs v10 源代码系列解读:14 · 谓词守卫:在运行时安全地调用能力
前端·javascript·音视频
kyriewen1 小时前
我扒了 10,221 条 JD:腾讯技术岗 75% 在要 AI
前端·人工智能·ai编程
郑州光合科技余经理2 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
+VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue旅游管理系统(源码+数据库+文档)
java·开发语言·vue.js·spring boot·课程设计
雪芽蓝域zzs3 小时前
第 7 章:双 Y 轴组合图(柱状 + 折线,看板高频场景)
vue.js·echars
IT_陈寒3 小时前
Vue的响应式让我熬到凌晨三点,原来漏了这个小细节
前端·人工智能·后端
一 乐3 小时前
二手交易平台|基于springboot + vue二手交易平台(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序
Blanche15003 小时前
利用 RAG 为答疑机器人扩展知识范围
前端
天若有情6733 小时前
【纯前端小工具】公历生日转农历,批量查询每年农历生日对应的公历日期(GitHub Pages在线直接用)
前端·javascript·github pages·农历转换·lunisolar·网页小工具
SoonITer3 小时前
怎样构建一个 Agent-friendly 的网站
前端·agent