12345678910111213141516171819202122232425262728293031 |
- "use strict";
- exports.getTimezoneOffsetInMilliseconds = getTimezoneOffsetInMilliseconds;
- var _index = require("../toDate.cjs");
- /**
- * 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.
- */
- function getTimezoneOffsetInMilliseconds(date) {
- const _date = (0, _index.toDate)(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 - +utcDate;
- }
|