【问题标题】:How to compare an array of dates with today's date in React Native?如何在 React Native 中将日期数组与今天的日期进行比较?
【发布时间】:2022-11-06 03:51:18
【问题描述】:

我想比较来自该数组的每个日期并将它们与今天的日期进行比较,如果有一个日期等于今天的日期,让 {showImage} 为真:

   data: [
        {
            id: "1",
            date: "2021-10-05T00:00:00.000Z"
        },
        {
            id: "2",
            date: "2021-10-06T00:00:00.000Z"
        }
]

  const [showImage, setShowImage] = useState(false)

我该如何进行这种比较?

注意:我只想要日期我不在乎时间。

【问题讨论】:

    标签: javascript reactjs arrays typescript


    【解决方案1】:
      const [showImage, setShowImage] = useState(false)
       data: [
            {
                id: "1",
                date: "2021-10-05T00:00:00.000Z"
            },
            {
                id: "2",
                date: "2021-10-06T00:00:00.000Z"
            }
    ]
    
      const [showImage, setShowImage] = useState(false)
     const [extra, setExtra] = useState(0)
    
    React.useEffect(()=>{
    
    
    
    var today = new Date();
    var dd = String(today.getDate()).padStart(2, '0');
    var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
    var yyyy = today.getFullYear();
    
    let todayDate = yyyy+ '-' + mm+ '-' + dd; you get the current date
    
    let filterData=data.filter(dateVal=>{
        
       if(dateVal.date.slice(0,10) == todayDate){
           return
                {
                 setShowImage(true)
                 setExtra(extra+1) 
                }
       else
                {
           return
                {
                 setShowImage(true)
                 setExtra(extra+1) 
                 }   
                }
    
    })
    },[])
    

    【讨论】:

    • 我们都使用相同的方法:-) 我没有看到你已经回答了。
    • 您能否接受或投票答案,以便其他人可以轻松信任和使用该解决方案。
    【解决方案2】:

    首先制作子字符串并仅从整个日期对象中获取日期,然后循环数据并将数据日期与今天的日期进行比较这是我的方法,欢迎任何更正:

      let data=[
        {
            id: "1",
            date: "2022-07-29T00:00:00.000Z"
        },
        {
            id: "2",
            date: "2021-10-06T00:00:00.000Z"
        }
    ]
    var today = new Date();
    var dd = String(today.getDate()).padStart(2, '0');
    var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
    var yyyy = today.getFullYear();
    
     today = yyyy + '-' + mm + '-' + dd;
    
     data.map((item)=>{
        console.log(item.date.slice(0,10).toString() == today.toString(),"checking")
        if(item.date.slice(0,10).toString() == today.toString()){
          // setImage(true)
          }else{
          // do anything
          }
     })
    

    您可以在 useeffect 中运行此代码以实现您想要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-12
      • 1970-01-01
      • 2014-11-03
      • 1970-01-01
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多