A light and fast method of looking up timezones given the name of a city.
npm install city-timezones
var cityTimezones = require('city-timezones');
If a city is found, returns an array of possible matches with city, state, lat, lng, timezone. Returns an empty []
if nothing matches. Multiple cities can be found if they have the same name, i.e. Springfield.
A U.S. based city will contain a state_ansi
property which is the abbreviated form of a US State ANSI State Table
finding based on city name of Chicago (case insensitive):
const cityLookup = cityTimezones.lookupViaCity('Chicago')
console.log(cityLookup)
Will return:
[ { city: 'Chicago',
city_ascii: 'Chicago',
lat: 41.82999066,
lng: -87.75005497,
pop: 5915976,
country: 'United States of America',
iso2: 'US',
iso3: 'USA',
province: 'Illinois',
exactCity: 'Chicago',
exactProvince: 'IL',
state_ansi: 'IL',
timezone: 'America/Chicago' } ]
This method will return any partial match for the search term based on city, province, or country, or a combination thereof. A U.S. based city will also return matches for the state_ansi
property.
finding based on search term of Springfield MO
const cityLookup = cityTimezones.findFromCityStateProvince('springfield mo')
console.log(cityLookup)
Will return:
[ { city: 'Springfield',
city_ascii: 'Springfield',
lat: 37.18001609,
lng: -93.31999923,
pop: 180691,
country: 'United States of America',
iso2: 'US',
iso3: 'USA',
province: 'Missouri',
state_ansi: 'MO',
timezone: 'America/Chicago' } ]
If a iso code is found, returns an array of possible matches with city, state, lat, lng, timezone. Returns an empty []
if nothing matches. Multiple cities are returned if there are more than one city for the given iso code.
finding based on iso code of Germany (case insensitive):
const findFromIsoCode = cityTimezones.findFromIsoCode('DE')
console.log(findFromIsoCode)
Will return:
[
{
city: "Mainz",
city_ascii: "Mainz",
country: "Germany",
iso2: "DE",
iso3: "DEU",
lat: 49.98247246,
lng: 8.273219156,
pop: 184997,
province: "Rheinland-Pfalz",
timezone: "Europe/Berlin"
},
...
]
This array will contain the full list of all available cities.
const cityMapping = cityTimezones.cityMapping
console.log(cityMapping)
Will return:
[
{
"city": "Qal eh-ye Now",
"city_ascii": "Qal eh-ye",
"lat": 34.98300013,
"lng": 63.13329964,
"pop": 2997,
"country": "Afghanistan",
"iso2": "AF",
"iso3": "AFG",
"province": "Badghis",
"timezone": "Asia/Kabul"
},
{
"city": "Chaghcharan",
"city_ascii": "Chaghcharan",
"lat": 34.5167011,
"lng": 65.25000063,
"pop": 15000,
"country": "Afghanistan",
"iso2": "AF",
"iso3": "AFG",
"province": "Ghor",
"timezone": "Asia/Kabul"
},
...
]