javascript - 如何在 VueJs 中使用 Javascript 获取过去的月份日期?
问题描述
我对 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
anddefaultEndDate
放入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
如下所示:
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));
}
}
推荐阅读
- python - 比较Python中的两个json字典
- laravel - 通过地址栏使用 Laravel-Nwdart 模块
- go - Golang rsa x509 ParsePKIXPublicKey 错误
- linux - 替换 Linux 调度程序
- c# - 如何格式化从Windows窗体中的datagridview生成的xml文件c#
- drupal - 我正在对drupal中的内容进行删除
- visual-studio - 解决方案结构——子文件夹或子项目
- python - 使用 Python selenium 自动化 ChromeOptions 来允许 flash,就像我们使用配置文件为 firefox 所做的那样
- excel - Excel中的行到列
- c# - C# Windows 应用程序将数据表数据导出到 .csv 文件