2017-07-31 78 views
2

我目前正在使用React.js進行項目。 我正在使用material-ui datepicker,除了14個即將到來的日期之外,我會阻止所有日期。我想要的是每個星期四我都會在日期選擇器中獲得14個新日期。Moment.js datepicker不會接受我的日期

我應該我beginningOfWeekendOfWeek添加到我的maxDateminDate,但它目前沒有工作,我無法弄清楚如何得到它的權利。

這類型從日誌中的正確答案,但是當我按我得到一個錯誤的日期選擇器和調試器說:

TypeError: d2.getFullYear is not a function at monthDiff 

我在做什麼錯?

我已將這個例子用於我自己的代碼。 How to get the date ranges of a given week number in JS

這是我的代碼:

var moment = require('moment'); 
const w = moment().weekday(); 
const daysToSubtract = (w + 3)%7; 
const beginningOfWeek = moment(new Date())); 
const endOfWeek = moment(new Date()).add(-daysToSubtract, 'days'); 

console.log(beginningOfWeek.format('MM/DD/YYYY h:mm a'), 
endOfWeek.format('MM/DD/YYYY h:mm a')) 
<div className="center-container"> 
    <DatePicker hintText={newdate} mode="landscape" maxDate={endOfWeek} 
       minDate={beginningOfWeek}/> 
</div> 
+1

您確定此日期選擇器要在您自己的自定義格式中設置max-和minDate ...嗎?我想可能不是。 (並且它可能不會在意這些值中的_time_組件。) – CBroe

+0

首先,格式錯誤,應該是'dd'。 – Sulthan

回答

1

我解決它做這個。我將maxDate更改爲maxDate = {new Date(endOfWeek)} />

const moment = require('moment'); 
const w = moment().weekday(); 
const daysToSubtract = ((w + 3 + Math.floor(hours/16)))%7 ; 
const beginningOfWeek = moment().add(-daysToSubtract, 'days'); 
const endOfWeek = moment().add(14-daysToSubtract, 'days'); 

console.log(beginningOfWeek); 
console.log(endOfWeek); 

<div className="center-container"> 
    <DatePicker hintText={newdate} mode="landscape" minDate={new 
       Date()} maxDate = {new Date(endOfWeek)}/> 
</div>