繁体   English   中英

如何在 VueJs 中使用 Javascript 获取过去的月份日期?

[英]How to get past month date using Javascript inside VueJs?

我对 Vue 有点陌生,想知道如何获得过去一个月的日期:我有这个代码:

import SomeTable from "./table/SomeTable";

export default {
    name: "Cabinets",
    components: {SomeTable},
    data() {
        return {
            defaultColumns: [
                'id',
                'serialNumber'
            ],

            defaultStartDate: new Date(),
            defaultEndDate: new Date('2019-10-07')
        }
    },
    props: {
        startDate: {type: Date, required: false},
        endDate: {type: Date, required: false},
    }
}

</script>

然后我将defaultStartDatedefaultEndDate放在SomeTable元素中,如下所示:

 <some-table :start-date="defaultStartDate" :end-date="defaultEndDate" :default-columns="defaultColumns"></some-table>

然后返回正确的今天的开始日期以及设置的日期。 但是当我尝试做这样的事情时:

defaultEndDate: new Date().getFullYear() + '-' + new Date().getMonth() + '-' + new Date().getDate()

我的本地环境变成空白并出现各种错误。 我认为这是因为我不能在 Vue 的那个地方使用 Javascript? 但同样,我真的不确定 Vue 是如何工作的,并且通过谷歌搜索找不到太多关于它的信息。 那么我怎么能使用 Javascript 或者即使 Vue 有一个巧妙的技巧呢?

编辑:我得到的错误是:

data() 中的错误:“TypeError: Date().getFullYear 不是函数”

但随后我在 Vue 中使用了所有 javascript 函数。 并且

无效的道具:道具“endDate”的类型检查失败。 预期日期,得到值为“2019-9-5”的字符串。

在您的代码中, endDate: {type: Date, required: false},表示endDate应该是 Date 类型。

因此,您需要将计算值转换为Date ,如下所示:

defaultEndDate: new Date(`${(new Date()).getFullYear()}-${(new Date()).getMonth()}-${(new Date()).getDate()}`)

编辑:你需要考虑月份是一月(0)。 使用上面的方法,一月份的时候会报错。 我认为使用如下computed值可能会更好;

computed: {
  defaultEndDate() {
     const now = new Date();
     now.setMonth(now.getMonth() - 1);
     return new Date(now.toJSON().slice(0, 10));
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM