'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!
Solution 1:[1]
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.
Solution 2:[2]
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])
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | Jared |
