Skip to content

Library for detecting user's timezone or finding timezone name by provided offset.

License

Notifications You must be signed in to change notification settings

yury-dymov/tzname

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tzname

npm version Downloads Build Status Coverage Status

Library for detecting user's timezone or finding timezone name by provided offset.

Installation

npm i --save tzname

Usage

detectTimezone()

Function detects user's timezone and returns timezone name in TZ format (i.e. 'Europe/Moscow')

getTimezoneNameByOffset(offset)

Function takes timezone UTC offset and returns timezone name in TZ format.

You can provide offset as either number or string in hours, minutes of milliseconds.

getTimezoneNameByOffset(3) === getTimezoneNameByOffset(180) === getTimezoneNameByOffset(10800000) === "Asia/Baghdad"
getTimezoneNameByOffset("3") === getTimezoneNameByOffset("180") === getTimezoneNameByOffset("10800000") === "Asia/Baghdad"

Common usage

const timezoneOffset = -(new Date().getTimezoneOffset());
const timezoneName   = getTimezoneNameByOffset(timezoneOffset);

Note: don't forget that JavaScript Date.getTimezoneOffset() returns negative offset value. I.e. for Moscow (GMT+3) it returns '-180'. To deal with that it is important to put 'minus' sign in front of the method call.

Example

import { detectTimezone, getTimezoneNameByOffset } from 'tzname';

const currentTimeZone = detectTimezone();

console.log(currentTimeZone); // -> i.e. "America/Phoenix"

const timezoneName = getTimezoneNameByOffset(3);

console.log(timezoneName); // -> "Asia/Baghdad"

Note

Tzname library is designed to work with libraries like intl.FormattedDate and react-intl. Both require timezone name instead of offset. For this use case there is no difference between "Asia/Baghdad" and "Europe/Moscow" as both have the same GMT+3 offset. However, if you would like to get more precise timezone and use GeoIP for that than this library is not a proper choice.

About

Library for detecting user's timezone or finding timezone name by provided offset.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published