如何在VueJs中使用Javascript获取过去的月份日期?
我对Vue有点陌生,想知道如何获取上个月的日期:我有以下代码:如何在VueJs中使用Javascript获取过去的月份日期?,javascript,vue.js,Javascript,Vue.js,我对Vue有点陌生,想知道如何获取上个月的日期:我有以下代码: import SomeTable from "./table/SomeTable"; export default { name: "Cabinets", components: {SomeTable}, data() { return { defaultColumns: [ 'id', 'serialN
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>
然后返回今天的正确开始日期和设置日期。但当我尝试做这样的事情时:
defaultEndDate: new Date().getFullYear() + '-' + new Date().getMonth() + '-' + new Date().getDate()
我的本地环境变为空白并出现各种错误。我想这是因为我不能在Vue中的那个地方使用Javascript?但我仍然不确定Vue是如何工作的,在谷歌上也找不到太多。那么,我如何使用Javascript实现这一点呢?或者,即使Vue有一个巧妙的技巧,我也可以这么做
编辑:
我收到的错误如下所示:
数据()中的错误:“类型错误:日期()。getFullYear不是函数”
但是我在Vue中使用的所有javascript函数。而且
无效的属性:属性“endDate”的类型检查失败。预期日期,获取值为“2019-9-5”的字符串
在代码中,
endDate:{type:Date,required:false},
表示endDate
应为日期类型
因此,您需要将计算值转换为日期,如下所示:
defaultEndDate: new Date(`${(new Date()).getFullYear()}-${(new Date()).getMonth()}-${(new Date()).getDate()}`)
编辑:
你需要考虑的月份是一月(0)。通过使用上述方法,您将在1月份得到错误。
我认为最好使用计算的值,如下所示
computed: {
defaultEndDate() {
const now = new Date();
now.setMonth(now.getMonth() - 1);
return new Date(now.toJSON().slice(0, 10));
}
}
“犯各种各样的错误”。。。它们是什么?错误消息非常重要,信息丰富,还可以告诉您问题在代码中的位置。将它们包含在您的question@charlietfl你是对的,但是它们没有意义,因为它们相互矛盾,其中一个说函数没有定义,另一个说它们有一个字符串。所以我认为它们没有用。它们可能会让你困惑,但完全忽略它们并不是解决问题的方法。事实上,你似乎误解了他们的意思。这很有道理,而且效果很好,谢谢。但是因为我想要过去一个月,所以不需要+1
,因为Javascript默认返回过去一个月
computed: {
defaultEndDate() {
const now = new Date();
now.setMonth(now.getMonth() - 1);
return new Date(now.toJSON().slice(0, 10));
}
}