I am relatively new at ReactJS. So, I’ve been trying to create a countdown using React, which I managed to do, but it returns this
Essentially, I don’t want the colon after the ‘seconds’.
This is my code for the countdown.
const calculateTimeLeft = () => { let year = new Date().getFullYear(); const difference = +new Date(`${year}-02-21`) - +new Date(); let timeLeft = {}; if (difference > 0) { timeLeft = { days: Math.floor(difference / (1000 * 60 * 60 * 24)), hours: Math.floor((difference / (1000 * 60 * 60)) % 24), minutes: Math.floor((difference / 1000 / 60) % 60), seconds: Math.floor((difference / 1000) % 60), }; } return timeLeft; }; const [timeLeft, setTimeLeft] = useState(calculateTimeLeft()); const [year] = useState(new Date().getFullYear()); useEffect(() => { setTimeout(() => { setTimeLeft(calculateTimeLeft()); }, 1000); }); const timerComponents = []; Object.keys(timeLeft).forEach((interval) => { if (!timeLeft[interval]) { return; } timerComponents.push( <span>{timeLeft[interval]}{" : "}</span> ); });
Would really appreciate the help thanks!
Advertisement
Answer
const keyCount = Object.keys(timeLeft).length; Object.keys(timeLeft).forEach((interval, index) => { // Here, I added index if (!timeLeft[interval]) { return; } timerComponents.push( <span> {timeLeft[interval]} {index === (keyCount-2) ? '' : ' : '} // Here </span> ); });