我创建了一个react native应用程序,通过它我需要进行迄今为止的比较。如果是真的,将执行执行。
问题是,该条件在React本机开发模式下起作用,而在React本机生产版本中不起作用。我正在为数据库使用firebase,也正在使用redux。
这是我的代码:
var d = new Date();
const fromDate = extract.validFrom.split("-").reverse(); //"01-02-2019"
const tillDate = extract.validTill.split("-").reverse(); //"10-03-2019"
var k = new Date(fromDate)
var j = new Date(tillDate)
需要验证的条件是:
if(d.getDate() >= k.getDate() === true && d.getDate() <= j.getDate() === true){...some code}else{this.props.error("Code Expired")}
这在开发过程中确实可以正常工作,但条件是失败了,并且转移到其他地方。我不知道为什么表格和截止日期已从Firebase停用。
请帮助我解决。
答案 0 :(得分:1)
实际上,这是由于JavaScript核心不同而发生的。作为,chrome具有最新版的core,但没有本地响应。因此,您需要根据ES6给出日期,将日期“ 01-02-2019”更改为
"Fri Feb 02 2018 00:00:00 GMT+0530 (India Standard Time)".
然后删除
.split("-").reverse(); on both dates.
希望完全可以。
答案 1 :(得分:0)
一旦遇到日期问题,我就会遇到同样的问题。然后,我尝试用new Date()
括起该值,这对我有所帮助。我认为您的问题也与此类似。尝试比较为
if((new Date(d) >= new Date(k)) && (new Date(d) <= new Date(j))){
...some code
}