201610403
201610403

Reputation: 29

Compare current time with a specific time in a if statement

I'm trying to compare the current time with a specific time in React Native by using JavaScript but it's not working with this method that i have tried. This is how i have tried it:

export default function SettingsComponent() {
  let today = new Date();
  let currentTime = today.toLocaleTimeString();

  useEffect(() => {
    console.log(currentTime)
    if(currentTime == "12:39:30"){
      console.log('Comparison is working')
    }
  })
}

If there are any other suggestions to do this, let me know!

Upvotes: 1

Views: 1591

Answers (2)

trincot
trincot

Reputation: 350766

You can make this work by passing argument(s) to toLocalTimeString so to guarantee the format you get from it. For instance, you could specify a locale that uses the hh:mm:ss format:

today.toLocaleTimeString("en-SE")

Secondly, you should realise that you only have 1 second to have a match. One can imagine how some latency can make you miss a match, and the code only gets executed just after that second passed.

Upvotes: 1

Jared
Jared

Reputation: 11

Likely your useEffect is running before the currentTime is set. Try adding the currentTime to the useEffects dependency array.

    useEffect(() => {
        console.log(currentTime)
        if(currentTime == "12:39:30"){
          console.log('Comparison is working')
        }
      }, [currentTime])

Upvotes: 1

Related Questions