2017-11-11 178 views
1

我要檢查,如果當前日期是從2017年7月11日開始日期之間有效期至使用moment.js 2018年5月1日。瞬間的js日期比較

任何幫助?如何做到這一點?

我有下面的代碼:

import React, {Component} from 'react'; 
import moment from 'moment'; 

class Dates extends Component { 
    constructor() { 
    super(); 
    this.state = { 
     dateNow: moment(), 
     availability:'' 
    } 
    } 
    componentDidMount() { 
    let startdate = moment("17-11-2017"); 
    let enddate = moment("05-01-2018"); 

    this.setState({ 
     availability: 'Yes' 
    }); 
    } 
    render() { 
    return(
     <div> 
     <div>{this.state.dateNow}</div> 
     <table> 
      <tr> 
      <td>Available from 7th November,2017 to 5th January,2018?</td> 
      <td>{this.state.availability}</td> 
      </tr> 
      </table> 
     </div> 
    ); 
    } 
} 
export default Dates; 
+3

檢查此:https://momentjs.com/docs/#/query/is-between/ –

+0

非常感謝@Ajit – Subhojit

+0

Subhojit請在標記爲bestanswer訪問https:// momentjs之前檢查答案。 com /並在console.log中輸入答案,您在問題中提到的日期必須返回true,但在elumalai_kp中它返回false,因此這是一個無效答案,他的方法是正確的,但回答不正確 –

回答

4

使用isBetween檢查像

moment('22-11-2017').isBetween('17-11-2017', '05-01-2018');

方法可用性返回true如果條件是別的false真。

+0

它將以當前格式返回無效因爲必須首先將字符串更改爲有效的時刻對象,並且它現在返回false,您可以通過https://momentjs.com/在日期格式中正確格式化後返回true值。 –

+0

對不起,我編輯了這個問題。沒有使用我提供的日期變量。正如我提到的當前日期,你需要把this.state.dateNow而不是日期。看我已經設置了dateNow:moment()來獲取當前日期。 – Subhojit

2

首先將其轉換爲有效的Date對象

let date = moment("22-11-2017", "DD-MM-YYYY") 
let startdate = moment("17-11-2017","DD-MM-YYYY"); 
let enddate = moment("05-01-2018","DD-MM-YYYY"); 

然後使用

var a = date.toDate();b= startdate.toDate(),c=enddate.toDate(); 

轉換的具體日期,日期格式 ,然後用一個簡單的,如果條件

if (a.getTime() >=b.getTime() && a.getTime() <=c.getTime()) 
    console.log('do your stuff') 
    else 
    console.log('sorry timeout') 

你也可以用這個

date.isBetween(startdate,enddate) 
+0

您的時刻對象截至目前爲止返回無效日期 –

+1

對不起,我編輯了這個問題。我沒有提到過那個日期變量的用法。正如我還提到**當前日期**,您需要將** this.state.dateNow **而不是日期。看我已經設置了dateNow:moment()來獲取當前日期。但你也把** elumalai_kp **相同​​。它也是** 22-11-2017 **你有比較。 Elumalai_kp是第一個回答,他的方法和你的方法一樣,所以我首先標記了他的方法。 @Sagar – Subhojit