- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 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>
然后我将 defaultStartDate
和 defaultEndDate
放在 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 有一个巧妙的技巧来做到这一点呢?
编辑:我得到的错误是以下形式:
Error in data(): "TypeError: Date().getFullYear is not a function"
然后我在 Vue.js 中使用了所有的 javascript 函数。还有
Invalid prop: type check failed for prop "endDate". Expected Date, got String with value "2019-9-5".
最佳答案
在您的代码中,endDate: {type: Date, required: false},
表示 endDate
应该是 Date 类型。
因此您需要将计算值转换为 Date
,如下所示:
defaultEndDate: new Date(`${(new Date()).getFullYear()}-${(new Date()).getMonth()}-${(new Date()).getDate()}`)
编辑:你需要考虑月份是 January(0)。通过使用上述方法,您将在一月时出错。我认为使用如下所示的 computed
值会更好;
computed: {
defaultEndDate() {
const now = new Date();
now.setMonth(now.getMonth() - 1);
return new Date(now.toJSON().slice(0, 10));
}
}
关于javascript - 如何在 VueJs 中使用 Javascript 获取过去的月份日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58247911/
我是一名优秀的程序员,十分优秀!