【问题标题】:Moment Js Date ComparisonMoment Js日期比较
【发布时间】:2018-04-24 09:47:04
【问题描述】:

我想使用 moment.js 检查 当前日期 在 07-11-2017 到 05-01-2018 之间的日期是否有效。

有什么帮助吗?? 怎么办?

我有以下代码:

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;

【问题讨论】:

  • 非常感谢@Ajit
  • Subhojit 请在标记为最佳答案之前检查答案,访问momentjs.com 并在console.log 中输入答案,您在问题中提到的日期必须返回true,但在elumalai_kp 中返回false,所以它是一个无效的答案他的方法是正确的,但答案是不正确的

标签: javascript reactjs date momentjs


【解决方案1】:

首先将其转换为有效的日期对象

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条件

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

你也可以用这个

date.isBetween(startdate,enddate)

【讨论】:

  • 您的时刻对象现在返回无效日期
  • 对不起,我已经编辑了这个问题。没有使用我提到的那个日期变量。正如我也提到过当前日期,您需要输入this.state.dateNow 而不是日期。看我设置了 dateNow: moment() 来获取当前日期。但是你也放了和 elumalai_kp 一样的东西。你也放了 22-11-2017 来比较。 Elumalai_kp 是第一个回答的,他的方法和你的一样,所以我一开始就标记了他的。 @Sagar
【解决方案2】:

使用isBetween 来检查可用性,例如

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

如果条件为真,则方法返回true,否则返回false

【讨论】:

  • 它将以当前格式返回无效,因为您必须首先将字符串更改为有效的时刻对象,并且它现在返回 false,您可以在将其正确格式化后签入 momentjs.com日期格式,它将返回真值。
  • 对不起,我已经编辑了这个问题。我给出的那个日期变量没有用。正如我提到的当前日期,您需要放置 this.state.dateNow 而不是日期。看我设置了 dateNow: moment() 来获取当前日期。
猜你喜欢
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
  • 2014-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多