当前位置: 首页 > news >正文

解决前后端日期传输因时区差异导致日期少一天的问题

前端处理

1. 发送日期字符串而非时间戳

在前端使用日期选择器(如 el-date-picker)获取日期后,将日期转换为特定格式的字符串(如 YYYY-MM-DD)发送给后端,避免直接发送带有时区信息的时间戳或日期对象。这样做的好处是将日期信息以一种通用、无歧义的格式传递,减少后端处理时区的复杂性。

vue

<template>
  <el-form :model="warehousingForm" ref="formRef">
    <el-form-item label="生产日期" prop="productionDate">
      <el-date-picker v-model="warehousingForm.productionDate" type="date" placeholder="选择日期">
      </el-date-picker>
    </el-form-item>
    <el-form-item label="有效期" prop="expiringDate">
      <el-date-picker v-model="warehousingForm.expiringDate" type="date" placeholder="选择日期">
      </el-date-picker>
    </el-form-item>
    <el-button @click="submitForm">提交</el-button>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      warehousingForm: {
        productionDate: null,
        expiringDate: null
      }
    };
  },
  methods: {
    submitForm() {
      if (this.warehousingForm.productionDate) {
        this.warehousingForm.productionDate = this.formatDate(this.warehousingForm.productionDate);
      }
      if (this.warehousingForm.expiringDate) {
        this.warehousingForm.expiringDate = this.formatDate(this.warehousingForm.expiringDate);
      }
      // 模拟发送请求
      console.log(JSON.stringify(this.warehousingForm));
    },
    formatDate(date) {
      const d = new Date(date);
      const year = d.getFullYear();
      const month = String(d.getMonth() + 1).padStart(2, '0');
      const day = String(d.getDate()).padStart(2, '0');
      return `${year}-${month}-${day}`;
    }
  }
};
</script>

相关文章:

  • 【c++】【Linux】【进程】线程终止/崩溃 会导致进程终止/崩溃 吗?
  • 【油漆面积——线段树,扫描线,不用pushdown的特例,pushup兼有cal的性质】
  • 大数据如何帮助你在业务中创造奇迹?
  • 【HarmonyOS Next】图片选择方案
  • 精选Python小项目代码
  • 【前端框架】深入探讨 Vue 3 组件生命周期的变化和最佳实践
  • 卓越设计彰显品质:福特中国“烈马宇宙”项目展示高质量标准
  • linux--关于GCC、动态库静态库
  • kubectl exec 实现的原理
  • 【SQL技术】不同数据库引擎 SQL 优化方案剖析
  • 30天自制操作系统第一天(1)
  • 微信小程序性能优化
  • 寒假第三周周报
  • 基于JAVA的幼儿园管理系统的设计与实现源码(springboot+vue+mysql)
  • [创业之路-307]:如何解读公司的业绩?它与股价变化的关系?
  • c++中std::thread构造函数的注意事项
  • 【Python】Python入门基础——环境搭建
  • 数据库系统原理——第十章数据恢复技术复习题
  • 学习总结三十四
  • Ubuntu20.04部署stable-diffusion-webui环境小记
  • 秦洪看盘|风格有所转变,热钱回流高弹性品种
  • 侵害孩子者,必严惩不贷!3名性侵害未成年人罪犯被执行死刑
  • 俄代表团:16日上午将继续“等候乌代表团”
  • 共建医学人工智能高地,上海卫健委与徐汇区将在这些方面合作
  • 国防部:赖清德歪曲二战历史,背叛民族令人不齿
  • 山东:小伙为救同学耽误考试属实,启用副题安排考试