使用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>