javascript - 在 vue 组件中使用 moment 格式化日期

标签 javascript vue.js momentjs

我有一个带有日期类型输入字段的 Vue 组件:

<input
    type="date"
    name="start_date"
    id="start_date"
    v-model="absence.start_date"
>

在我的脚本中,我尝试格式化日期以使其正确显示:

<script>
    export default {
        data() {
            return {
                absence: {
                    start_date: null,
                }
            }
        },
        created() {
            const request = axios
                .get(`/api/absences/${this.$route.params.id}`)
                .then(response => {
                    this.absence = response.data.data;
                });
        }
    }
</script>

但是它不适用于 API 返回的格式。

如果我手动设置日期,它会以这种格式工作

start_date: '2021-01-01',

但是它会被 api 调用覆盖。我在 app.js 中安装了 moment,如何使用 moment 来格式化 api 调用返回的日期?

编辑

这是 API 响应:

{"success":true,"data":{"id":1,"start_date":"2021-07-24 00:00:00","end_date":"2021-07-25 00:00:00","notes":"Quis nisi repellendus ipsa. Eum asperiores sunt iusto exercitationem autem. Qui harum adipisci praesentium laboriosam. Fugit quasi voluptatem excepturi et non autem atque quibusdam. Sed aperiam molestias quaerat incidunt.","created_at":"2021-06-28T19:34:16.000000Z","updated_at":"2021-07-03T15:46:10.000000Z","status":1}}

最佳答案

您可以执行如下操作。工作示例代码 here

并确保安装了 moment js

<input
   type="date"
   name="start_date"
   id="start_date"
   v-model="formattedStartDate"
>

// Make sure moment is installed

<script>
    import moment from 'moment'

    export default {
        data() {
            return {
                absence: {
                    start_date: null,
                }
            }
        },
        computed: {
            formattedStartDate() {
                return moment(this.absence.start_date).format('yyyy-MM-DD');
            }
        },
        created() {
            const request = axios
                .get(`/api/absences/${this.$route.params.id}`)
                .then(response => {
                    this.absence = response.data.data;
                });
        }
    }
</script>

关于javascript - 在 vue 组件中使用 moment 格式化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68238851/

相关文章:

javascript - 动画不适用于列表项

javascript - 从控件中检索 id 以在导航中使用

javascript - 我可以在 Vue 中使用带有箭头函数的样式绑定(bind)吗?

javascript - 使用 moment.js 设置日期格式

javascript - Three.js 渲染结果意外?

javascript - 获取数组中的所有元素(Javascript)

javascript - 获取json数据时如何去掉promise

javascript - Uncaught ReferenceError : jQuery is not defined VueJS Parcel

javascript - moment.js 上的无效日期错误

javascript - 对输出格式使用相同的解析格式