【问题标题】:Date format for Node.js, Sequelize, mysql and VueNode.js、Sequelize、mysql 和 Vue 的日期格式
【发布时间】:2021-06-22 17:20:46
【问题描述】:

我正在为斯洛伐克的一家公司开发内部系统。我在 node.js(express.js 服务器)中创建了 API,并且正在使用 Sequelize 来查询 mysql。 在前端,我有 Vue 和 Vuetify。

问题是每个日期都是 ISO 格式 (YYYY-MM-DD)。在我的国家,我们使用不同的日期共振峰 (DD-MM-YYYY)。当我与那家公司的 CEO 会面时,我正在制作这个应用程序的人告诉我,有很多年长的人不懂英语,对他们来说 ISO 格式可能很难。

我是 Vue 和 Node 的新手,基本上这是我的第一份编程工作,所以请帮我解决这个问题。

这是我的 Vue 代码:

 <v-col cols="12" sm="6" md="4">
        <v-menu color="orange lighten-2 white--text"
          ref="datePicker"
          v-model="datePicker"
          :close-on-content-click="false"
          transition="scale-transition"
          offset-y
          min-width="auto"
        >
          <template v-slot:activator="{ on, attrs }">
            <v-text-field color="orange lighten-2 white--text"
              v-model="dateOfDiscovery"
              label="Dátum zistenia"
              append-icon="mdi-calendar"
              required
              v-on="on"
              v-bind="attrs"
            ></v-text-field>
          </template>
          <v-date-picker color="orange lighten-2 white--text"
            v-model="dateOfDiscovery"
            @change="datePicker = false"
          >
            <v-spacer></v-spacer>
          </v-date-picker>
        </v-menu>
      </v-col>

这是我的节点代码:

module.exports = (sequelize, DataTypes) => {
const Case = sequelize.define('Case', {
    caseName: DataTypes.STRING,
    constructionSite: DataTypes.STRING,
    createdBy: DataTypes.STRING,
    dateOfDiscovery: DataTypes.DATEONLY,
    dateOfRemoval: DataTypes.DATEONLY,
    responsible: DataTypes.STRING,
    howManyDiscoveries: DataTypes.INTEGER,
    placeOfDiscovery: DataTypes.STRING,
    text: DataTypes.TEXT,
    sanction: DataTypes.STRING,
    forCompany: DataTypes.STRING,
})
return Case

}

如何更改 vue 和 node 的格式以符合我的要求?

谢谢大家!

【问题讨论】:

    标签: node.js vue.js orm format sequelize.js


    【解决方案1】:

    您可以使用 Vue 应用程序中的 momentJs 库来格式化日期 https://momentjs.com/

    【讨论】:

      【解决方案2】:

      您可以轻松地将Moment.JS 用于此用例。

      例如,从 YYYY MM DD 格式更改为 YYYY DD MM:

      const moment = require('moment')
      moment("2020-11-10").format("YYYY DD MM")
      

      【讨论】:

      • 我能否在我定义我的案例外观的地方使用它? moment(dateOfDiscovery)format('DD MM YYYY)
      • 你错过了.,应该是moment(dateOfDiscovery).format('DD MM YYYY)
      • 是的,我明白了,谢谢!.. 现在每当我创建新案例时,在 DB 中它应该是这种新格式,对吧?
      • 无法回答该问题,因为我不确定您如何将其存储到数据库中。但我相信您只需要确保它是如何在前面显示它,以及您存储在数据库中的任何日期格式,您都可以在前端使用 moment 重新格式化它
      • 你是对的,对我来说,我如何存储数据并不重要,只需要格式化前端。我为 Vue 找到了这个,它是正确的用法吗? &lt;v-date-picker v-model="dateOfDiscovery" @change="datePicker = false" :format="customFormatter"&gt; 和脚本:customFormatter(date) { return moment(date).format('DD MMMM YYYY'); }
      猜你喜欢
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      • 2017-12-17
      • 1970-01-01
      相关资源
      最近更新 更多