Determine timezone from lat/long in NodeJS
npm install tzwhere
vartzwhere=require('tzwhere')tzwhere.init();varwhiteHouse={'lat': 38.897663,'lng': -77.036562};// Determine the timezone of the White Houseconsole.log(tzwhere.tzNameAt(whiteHouse['lat'],whiteHouse['lng']));// Determine the current offset from UTC, in milliseconds, of the White House's timezoneconsole.log(tzwhere.tzOffsetAt(whiteHouse['lat'],whiteHouse['lng']));yields:
America/New_York
-14400000or
America/New_York
-18000000depending on the current state of daylight savings time in the America/New_York timezone. You can also do it asynchronously.
...
tzwhere.tzNameAt(whiteHouse['lat'],whiteHouse['lng'],function(error,result){if(error){console.log(error);}else{console.log(result);}}...You can also pass alternative GeoJSON shape files:
vartzwhere=require('tzwhere')tzwhere.init('path/to/alternative/tz/file');
...Check the tests for more comprehensive usage, including determining the timezone offsets at arbitrary dates (very useful for scheduling future events expressed in local time).
tzwhere is free software, and is distributed under the terms of the MIT license (see LICENSE.txt).
