UNPKG

date-fns

Version:

Modern JavaScript date utility library

27 lines (26 loc) 932 B
/** * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds. * They usually appear for dates that denote time before the timezones were introduced * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891 * and GMT+01:00:00 after that date) * * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above, * which would lead to incorrect calculations. * * This function returns the timezone offset in milliseconds that takes seconds in account. */ export function getTimezoneOffsetInMilliseconds(date) { const utcDate = new Date( Date.UTC( date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds(), ), ); utcDate.setUTCFullYear(date.getFullYear()); return date.getTime() - utcDate.getTime(); }