moment-timezone-for-local-time
Version:
Get all matching timezones given a local time and a timestamp. Moment.js plugin
56 lines (50 loc) • 2.46 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.momentTimezoneForLocalTime = {}));
}(this, (function (exports) { 'use strict';
/**
* @internal
* @see {moment.MomentTimezone.forLocalTime}
*/
function forLocalTime$1(hour, minute, timestamp) {
hour = Math.floor(hour);
minute = Math.floor(minute);
var tzs = [];
var zones = this.names();
for (var _i = 0, zones_1 = zones; _i < zones_1.length; _i++) {
var zone = zones_1[_i];
var ref = this(timestamp, zone);
if (ref.hour() === hour && ref.minute() === minute) {
tzs.push(zone);
}
}
return tzs;
}
function forLocalTime(hour, minute, timestamp) {
if (arguments.length === 0) {
var now = new Date();
return forLocalTime$1.call(this, now.getHours(), now.getMinutes(), now.getTime());
}
if (timestamp === undefined || timestamp === null) {
timestamp = Date.now();
}
if (typeof hour !== "number" || 23 < hour || hour < 0) {
throw new TypeError("hour arg must be a number and in [0,23]. You gave " + ((hour === null || hour === void 0 ? void 0 : hour.toString()) || "null or undefined") + ".");
}
if (typeof minute !== "number" || 59 < minute || minute < 0) {
throw new TypeError("minute arg must be a number and in [0,59]. You gave " + ((minute === null || minute === void 0 ? void 0 : minute.toString()) || "null or undefined") + ".");
}
return forLocalTime$1.call(this, hour, minute, timestamp.valueOf());
}
function extend(momentJS) {
if (!(momentJS === null || momentJS === void 0 ? void 0 : momentJS.tz)) {
throw new Error("The given object doesn't have a 'tz' property. Make sure to import moment-timezone before extending momentjs with moment-timezone-for-local-time.");
}
momentJS.tz.forLocalTime = forLocalTime;
}
exports.extend = extend;
exports.forLocalTime = forLocalTime;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=index.umd.js.map