Вычесть текущую дату из 2 дней в ES6 в React

#javascript #reactjs #ecmascript-6

#javascript #reactjs #ecmascript-6

Вопрос:

Я должен отключить кнопку, если reserved_date через 2 дня. Как я могу это сделать. Пожалуйста, проверьте мой код ниже

 today = new Date()

    <Button type="submit" color="primary" variant="contained" disabled={new Date(value.reserved_date) <= today}>
         Submit
    </Button>
  

Комментарии:

1. пожалуйста, проверьте, является ли значение value.reserved_date миллисекундным

Ответ №1:

попробуйте это:

в react:

     var today = new Date().getTime();
    var value = {
    reserved_date : new Date("October 03, 2020").getTime()
    };


    var diffDate =  value.reserved_date - today;    //Future date - current date
    var daysTillReservedDate = Math.floor(diffDate / (1000 * 60 * 60 * 24));

    <Button type="submit" color="primary" disabled = {daysTillReservedDate < -1} variant="contained">
             Submit
        </button>
  

 var today = new Date().getTime();
var value = {
reserved_date : new Date("October 03, 2020").getTime()
};


var diffDate =  value.reserved_date - today;    //Future date - current date
var daysTillReservedDate = Math.floor(diffDate / (1000 * 60 * 60 * 24));
if(daysTillReservedDate < -1){
document.getElementById("mustDisable").setAttribute("disabled", "true"); 
}  
 <button type="submit" color="primary" id="mustDisable" variant="contained">
         Submit
    </button>  

Ответ №2:

Выполнение чего-то подобного может решить вашу проблему.

 const isDisabled = () => {
     const reservedDateTime = new Date(value.reserved_date).getTime();
     const todayTime = new Date().getTime();
     const days = Math.ceil((todayTime - reservedDateTime)  / (1000 * 3600 * 24));
     return days >= 2;
}
    
<Button type="submit" color="primary" variant="contained" disabled={isDisabled()}>
    Submit
</Button>
  

Ответ №3:

   const twoDaysRemaining = (value) => {
    const reservedDate = new Date(value).getTime();
    const today = new Date().getTime();
    const days = Math.ceil((reservedDate - today) / (1000 * 3600 * 24));
    if (days > 2) {
      return false;
    } else {
      return true;
    }
  };