Moment Timezone

IANA time zone support for Moment.js — parse, convert, and format dates in any zone with automatic DST handling.

Library
npm
v0.6.5
3,880 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
85 /100 Excellent
Development Activity 80
Maintenance 72
Community 88
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
77 /100 Good
Architecture 80
Code Quality 78
Innovation 80
Learning Curve 75

Moment Timezone is an add-on for Moment.js that brings full IANA (Olson) time zone support to date handling in JavaScript. It lets you take any moment and convert, display, or compute it in a named zone such as ‘America/New_York’ or ‘Asia/Tokyo’, correctly accounting for historical offsets and daylight saving time transitions.

Bundled with the IANA time zone database, it exposes a small moment.tz API layered directly onto Moment’s chainable interface, plus utilities to guess the user’s zone, list zones by country, and load trimmed data sets to keep bundle size down. Note that Moment.js and this add-on are now in maintenance mode; for new projects the maintainers recommend a modern alternative such as Luxon or date-fns.

What You Get

  • A moment.tz() constructor and .tz() chaining method that convert any moment into a named IANA zone
  • The bundled IANA (Olson) time zone database with correct historical offsets and DST rules
  • Zone-guessing (moment.tz.guess()), per-country zone listing, and default-zone helpers
  • Data-loading utilities to pack, filter, and ship trimmed zone data for smaller bundles
  • TypeScript definitions that augment the Moment module for typed zone operations

Common Use Cases

  • Displaying a single UTC timestamp correctly across users in different time zones
  • Scheduling and computing events against a fixed business zone regardless of server locale
  • Detecting the browser’s current time zone to localize dates client-side
  • Handling daylight saving time boundaries and ambiguous or invalid local times

Under The Hood

Architecture — moment-timezone.js is a single UMD module that wraps and augments Moment.js, attaching a moment.tz object and Moment.prototype.tz method. Zone data is stored in a compact packed base-60 string format that unpack()/unpackBase60() decode into Zone objects holding parallel untils/offsets/abbrs arrays; Zone.prototype._index runs a binary-search (closest) over the untils boundaries to find the applicable offset for a given timestamp, while parse resolves ambiguous and invalid local times via the moveAmbiguousForward/moveInvalidForward flags. Zone guessing (guess, ZoneScore, userOffsets) scores candidate zones against the runtime’s observed offsets. index.js is the default entry that loads data/packed/latest.json before re-exporting moment.

Tech Stack — Plain ES5 JavaScript (99.98% of the codebase) with one runtime dependency, moment ^2.29.4. The build uses Grunt (grunt-contrib-uglify, grunt-contrib-jshint, grunt-contrib-nodeunit, grunt-exec) driven by Gruntfile.js and tasks/, with hand-maintained TypeScript definitions (index.d.ts, moment-timezone-utils.d.ts) and the IANA (Olson) database as the underlying data source, versioned under data/ in meta, unpacked, and packed forms.

Code Quality — A substantial nodeunit test suite lives under tests/moment-timezone/ (parse, zone, guess, load, pack/unpack, base-60, add, link, utc, manipulate, and more), complemented by typing-tests/ that exercise the TypeScript definitions. Code style is enforced by .jshintrc and .editorconfig. The implementation is terse ES5 with small single-purpose functions and clear naming; as an established maintenance-mode project, coverage of the core encoding, lookup, and parsing paths is solid.

API Design — The public surface is small and ergonomic, layering onto Moment’s chainable style: moment().tz('America/Los_Angeles').format(...), plus moment.tz.guess(), moment.tz.zonesForCountry(), moment.tz.names(), and setDefault(). It requires almost no boilerplate to adopt in an existing Moment codebase, is documented on the momentjs.com timezone site with runnable examples, and is fully typed. A few methods (e.g. Zone.offset) are marked deprecated in favor of utcOffset, reflecting the library’s long history.

Used by 35 apps in this directory

TypeScript
51%
ZLIB

Portainer

Devops

38,707

A lightweight, open-source web UI that puts Docker, Kubernetes, and Podman management within reach of any team—no CLI expertise required.

View details
93
Repo Health
79
Technical
65
Dependency
Built with
TypeScript 51%
Go 38%
Updated 1 weeks ago
JavaScript
50%
AGPL 3.0

QRev

AI Agents · CRM

364

Open source AI-first sales platform that replaces Salesforce with autonomous agents handling prospecting, outreach, and lead management at scale.

View details
39
Repo Health
68
Technical
64
Dependency
Built with
JavaScript 50%
Python 28%
TypeScript 14%
Updated 8 months ago
TypeScript
97%
Other

Rocket.Chat

Team Chat

46,304

The secure, self-hosted team communications platform for organizations that cannot compromise on data sovereignty.

View details
96
Repo Health
79
Technical
63
Dependency
Built with
TypeScript 97%
Updated 6 days ago
Python
57%
Other

Sentry

Analytics · Developer Tools · Monitoring

45,632

Developer-first error tracking and performance monitoring platform with AI-powered root-cause analysis across 20+ languages and frameworks.

View details
95
Repo Health
80
Technical
66
Dependency
Built with
Python 57%
TypeScript 42%
Updated 6 days ago
Rust
93%
Other

Tabby

AI Code Assistants

33,924

Self-hosted AI coding assistant — run GitHub Copilot-grade code completion on your own hardware with no cloud dependency.

View details
55
Repo Health
78
Technical
61
Dependency
Built with
Rust 93%
Updated 4 months ago
HTML
68%
AGPL 3.0

ToolJet

AI Agents · Low Code Platforms · No Code Platforms

41,123

Open-source AI-native platform to build and deploy internal tools, workflows, and AI agents with a visual drag-and-drop builder and 80+ data source integrations.

View details
94
Repo Health
81
Technical
63
Dependency
Built with
HTML 68%
JavaScript 20%
Updated 6 days ago
TypeScript
41%
AGPL 3.0

Wiki.js

Collaboration · Knowledge Management

29,081

A modern, self-hosted wiki platform built on Node.js with a rich plugin ecosystem for authentication, search, storage, and rendering that adapts to any team's infrastructure.

View details
95
Repo Health
67
Technical
60
Dependency
Built with
TypeScript 41%
Vue 39%
JavaScript 16%
Updated 6 days ago
TypeScript
72%
AGPL 3.0

Worklenz

Collaboration · Product Management · Project Management

3,259

All-in-one open source project management for teams who want full control — plan projects, track tasks, manage resources, and monitor finances without the SaaS lock-in.

View details
87
Repo Health
7
Technical
64
Dependency
Built with
TypeScript 72%
JavaScript 21%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers