25 - Interactive Time Zone Converter
Description
Algorithm
Classes
Code
import React, { useState, useEffect } from 'react';
import ReferenceTimeZoneSelector from './ReferenceTimeZoneSelector';
import CityTimeZoneList from './CityTimeZoneList';
function TimeZoneConverter() {
const [referenceTimeZone, setReferenceTimeZone] = useState('UTC');
const [currentTimes, setCurrentTimes] = useState({});
useEffect(() => {
const intervalId = setInterval(() => {
updateCurrentTimes();
}, 1000);
return () => clearInterval(intervalId);
}, [referenceTimeZone]);
const handleReferenceTimeZoneSelect = (timeZone) => {
setReferenceTimeZone(timeZone);
};
const updateCurrentTimes = () => {
const currentTimesObject = {};
const cities = [
{ name: 'New York', timeZone: 'America/New_York' },
{ name: 'London', timeZone: 'Europe/London' },
{ name: 'Tokyo', timeZone: 'Asia/Tokyo' },
// Add more cities or time zones as needed
];
cities.forEach((city) => {
currentTimesObject[city.name] = getCurrentTime(city.timeZone);
});
setCurrentTimes(currentTimesObject);
};
return (
<div>
<h2>Time Zone Converter</h2>
<ReferenceTimeZoneSelector
onTimeZoneSelect={handleReferenceTimeZoneSelect}
/>
<CityTimeZoneList currentTimes={currentTimes} />
</div>
);
}
export default TimeZoneConverter;
Explanation
Possible Future Enhancements
Previous24 - Digital Clock with Time Zone SupportNext26 - Weather Forecast App with Location Detection
Last updated