瞬间的js日期比较
我要检查,如果当前日期是从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;
使用isBetween
检查像
moment('22-11-2017').isBetween('17-11-2017', '05-01-2018');
方法可用性返回true
如果条件是别的false
真。
它将以当前格式返回无效因为必须首先将字符串更改为有效的时刻对象,并且它现在返回false,您可以通过https://momentjs.com/在日期格式中正确格式化后返回true值。 –
对不起,我编辑了这个问题。没有使用我提供的日期变量。正如我提到的当前日期,你需要把this.state.dateNow而不是日期。看我已经设置了dateNow:moment()来获取当前日期。 – Subhojit
首先将其转换为有效的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)
您的时刻对象截至目前为止返回无效日期 –
对不起,我编辑了这个问题。我没有提到过那个日期变量的用法。正如我还提到**当前日期**,您需要将** this.state.dateNow **而不是日期。看我已经设置了dateNow:moment()来获取当前日期。但你也把** elumalai_kp **相同。它也是** 22-11-2017 **你有比较。 Elumalai_kp是第一个回答,他的方法和你的方法一样,所以我首先标记了他的方法。 @Sagar – Subhojit
检查此:https://momentjs.com/docs/#/query/is-between/ –
非常感谢@Ajit – Subhojit
Subhojit请在标记为bestanswer访问https:// momentjs之前检查答案。 com /并在console.log中输入答案,您在问题中提到的日期必须返回true,但在elumalai_kp中它返回false,因此这是一个无效答案,他的方法是正确的,但回答不正确 –