Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 比较并匹配日期_Javascript_Reactjs_Date_Datetime_Match - Fatal编程技术网

Javascript 比较并匹配日期

Javascript 比较并匹配日期,javascript,reactjs,date,datetime,match,Javascript,Reactjs,Date,Datetime,Match,我面临javascript日期的问题。我想比较start date和end dateJSON数据,并显示在特定的插槽newprevious、newcurrent、newfirstdate和newseconddate 反应成分 我试过了,但我的状况不好 <div class="row"> {this.state.data && this.state.data.length ? // this.state.dat

我面临javascript日期的问题。我想比较
start date和end date
JSON数据,并显示在特定的插槽
newprevious、newcurrent、newfirstdate和newseconddate

反应成分

我试过了,但我的状况不好

        <div class="row">
          {this.state.data && this.state.data.length
            ? // this.state.data[index].start_date.toString() > this.state.newprevious
              // this.state.data[index].start_date.toString() > this.state.newcurrent
              // this.state.data[index].start_date.toString() > this.state.newfirstdate
              // this.state.data[index].start_date.toString() > this.state.newseconddate
              this.state.data.map(
                ({ cust_full_name, full_name, start_date }, index) => (
                  <div class="row" key={index}>
                    slot: {index + 1}
                    <p>{start_date}</p>
                    <p>{cust_full_name}</p>
                  </div>


{this.state.data&&this.state.data.length
?//this.state.data[index].start\u date.toString()>this.state.newprevious
//this.state.data[index].start\u date.toString()>this.state.newcurrent
//this.state.data[index].start\u date.toString()>this.state.newfirstdate
//this.state.data[index].start\u date.toString()>this.state.newsecondate
这个是.state.data.map(
({cust_full_name,full_name,start_date},index)=>(
插槽:{index+1}
{开始日期}

{客户全名}

我的工作演示:

我的代码输出:

只需匹配
开始日期和结束日期
JSON数据,并显示在特定的
上一个、当前、第一个和第二个日期
插槽中

预期产出:


我该怎么办?请帮帮我?

我已经使用JS库中的
new Date()
适应了您的解决方案。您可以查看。

假设 此.state.data中的日期格式正确

解决方案 只需将两个日期括在Date()中,就可以比较JavaScript中的两个日期


您可以使用
Array.filter
删除所有未通过检查的项,并仅渲染那些通过检查的项

此外,如果要比较日期,应执行以下操作:

const prev=“2020-05-11 01:45:50”;
const second=“2020-05-11 03:15:50”;
//阅读为什么需要规范化
// https://stackoverflow.com/a/45152231
常量规格化=(值)=>{
返回值。替换(//g,“T”)+“Z”
}
//不包括'min'和'max'`
const isBetween=(日期)=>{
const min=新日期(正常化(上一个))
const max=新日期(正常化(秒))
const dateToCompare=新日期(标准化(日期))
返回min控制台日志(“2020-05-11 02:45:00”,介于(“2020-05-11 02:45:00”)之间)
好的,我试试你的代码,谢谢你的一个问题?@MHasan是的,我应该如何比较
上一个、当前的、第一个和第二个日期
开始和结束日期
的比较。我已经更新了
沙盒代码
你可以检查“好的,我试试你的代码,谢谢你的另一个问题?答案应该解释为什么OP有这样的问题r问题以及您的代码如何修复它。您应该在此处发布代码,而不是其他地方。这是一个react代码,我想展示最终结果是什么。我提出了一个解决方案。OP没有问题,他不知道如何继续。请注意建议将字符串转换为日期的答案。“2020-05-11 01:45:50”不是ECMA-262支持的格式,因此解析依赖于实现,至少有一个当前浏览器会将其解析为无效日期。请参阅
var date1, date2;
date1 = new Date("put ur date here to compare");
date2 = new Date("Dec 15, 2014 21:20:15" ); 
if (date1 > date2) {
 alert("Date1 is the recent date.");
 } 
else { 
alert("Date 2 is the recent date."); 
}