使用Javascript获取datepicker从今天开始的日期数组
我试图编写一个函数,返回从今天到最长日期的日期数组,以便限制日期选择器的选择。目前,我有以下几点:-使用Javascript获取datepicker从今天开始的日期数组,javascript,vue.js,vuetify.js,Javascript,Vue.js,Vuetify.js,我试图编写一个函数,返回从今天到最长日期的日期数组,以便限制日期选择器的选择。目前,我有以下几点:- datesAfterToday: function (date) { var dates = [] var currentDate = new Date() var endDate = new Date(8640000000000000).getFullYear() var addDays = function (days) { var date
datesAfterToday: function (date) {
var dates = []
var currentDate = new Date()
var endDate = new Date(8640000000000000).getFullYear()
var addDays = function (days) {
var date = new Date(this.valueOf())
date.setDate(date.getDate() + days)
return date
}
while (currentDate <= endDate) {
dates.push(currentDate)
currentDate = addDays.call(currentDate, 1)
}
return dates
}
但是,我只得到一个对象数组,而不是正确的数组
如何获得正确的日期数组,以便将其绑定到allowdates属性
谢谢你的帮助和时间 另一种选择是使用,例如:
<script>
var state = {
disabled: {
to: new Date(), // Disable all dates up to specific date
from: new Date(8640000000000000) // Disable all dates after specific date
}
}
</script>
<datepicker :disabled="state.disabled"></datepicker>
变量状态={
残疾人士:{
to:new Date(),//禁用特定日期之前的所有日期
from:new Date(8640000000000000)//禁用特定日期之后的所有日期
}
}
请参阅文档中的。了解初学者的
新日期(8640000000000000)。getFullYear()
将结束日期设置为该日期的年份,即275760
。currentDate将是今天的日期(以毫秒为单位),在我撰写本文时,它是1511272934156
。正如您所看到的,currentDate总是大于endDate,因此您的while循环永远不会转到其中的语句
另一个问题是,您选择的日期实在是太遥远了,您每天都要填充一个数组。循环很可能会使页面冻结或完全崩溃。试着选择一个更容易管理的日期
例如,在下面的代码片段中,我设置了endDate
,首先将其初始化为今天,然后将年份设置为从现在起整整一年。这给了我一个大约365个值的数组
你可以想象,如果我在未来使用273748年,这个阵列会有多大
var日期=[]
var currentDate=新日期()
var endDate=新日期()
endDate.setFullYear(endDate.getFullYear()+1)
var addDays=函数(天){
var date=新日期(this.valueOf())
date.setDate(date.getDate()+天)
返回日期
}
当(currentDate)您将Date
对象推送到数组中时,您将获得对象数组…这些日期应该以什么格式存储在该数组中?作为字符串?时间戳?我正在填充日期选择器,因此我猜测它的字符串。但是日期似乎为空。因此,请尝试dates.push(currentDate.toString())
。或其他方法,如.toLocaleString()
,.toLocaleDateString()
等。尝试过,但我得到了长度0和数组(0)。似乎我的逻辑也有问题。你知道在这句话之后,结束日期
中保存的年份:变量结束日期=新日期(8640000000000000).getFullYear()
?我正在使用vuefity v-date-picker,它接受一个数组,我试图每隔一天都遵循它们的示例:function(date){const[,day]=date.split('-')return parseInt(day,10)%2==0},在挂载中,他们有这个。Allowedates=这个。everyOtherDay@Johann-我误读了您对我的上述回复,并认为您使用的是vuejs datepicker。我没有使用vuefity,但我会将此答案留作备选答案。非常感谢Khuari,这很有效!解释也很好!
<script>
var state = {
disabled: {
to: new Date(), // Disable all dates up to specific date
from: new Date(8640000000000000) // Disable all dates after specific date
}
}
</script>
<datepicker :disabled="state.disabled"></datepicker>