Parse, validate, manipulate, and display dates in javascript.
Failed to load latest commit information.
benchmarks perf: add duration benchmark, cleanup benchmarking output Jul 13, 2015
locale Build 2.14.0 Jul 4, 2016
meteor Use Meteor v1.2 core when available. This fixes the package breaking … Dec 1, 2015
min Build 2.14.1 Jul 4, 2016
scripts Include moment.d.ts file in packages (npm) Apr 18, 2016
src Bump version for 2.14.1 Jul 4, 2016
tasks Add more info about nuget setup Jul 4, 2016
templates Use relative amd moment dependency Jun 20, 2016
.editorconfig Add .editorconfig for project May 4, 2015
.gitattributes Introduce end-of-line normalization Mar 24, 2016
.gitignore Update .gitignore Nov 9, 2015
.jscs.json Fix jscs 3.0 error: 'The `esnext` option is enabled by default.' Jun 7, 2016
.jshintrc Clean up jscs and jshint errors in tests. Mar 25, 2015
.npmignore Ignore min/tests.js from npm package Jul 31, 2015
.spmignore ignore files in packages May 4, 2015
.travis.yml Drop non-LTS node versions from travis Jun 14, 2016 Changelog for 2.14.1 Jul 4, 2016 Add info on becoming a team member Jul 2, 2016
Gruntfile.js Fix saucelabs config for Edge and IE Dec 29, 2015
LICENSE Update copyright to 2016 Jan 9, 2016
Moment.js.nuspec Bump version for 2.14.1 Jul 4, 2016 Update Mar 18, 2016
bower.json bower.json: remove moot `version` field Jun 23, 2015
component.json Bump version for 2.14.1 Jul 4, 2016
composer.json Use JavaScript instead of javascript in pkg descriptions Dec 1, 2014
ender.js play nicely within an Ender build Apr 4, 2012
moment.d.ts 🐛 Fix Typings Jul 4, 2016
moment.js Build 2.14.1 Jul 4, 2016
package.js add a dojo build profile Nov 26, 2012
package.json Bump version for 2.14.1 Jul 4, 2016

Join the chat at

NPM version NPM downloads MIT License Build Status Coverage Status

A lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates.


Port to ECMAScript 6 (version 2.10.0)

Moment 2.10.0 does not bring any new features, but the code is now written in ECMAScript 6 modules and placed inside src/. Previously moment.js, locale/*.js and test/moment/*.js, test/locale/*.js contained the source of the project. Now the source is in src/, temporary build (ECMAScript 5) files are placed under build/umd/ (for running tests during development), and the moment.js and locale/*.js files are updated only on release.

If you want to use a particular revision of the code, make sure to run grunt transpile update-index, so moment.js and locales/*.js are synced with src/*. We might place that in a commit hook in the future.

Upgrading to 2.0.0

There are a number of small backwards incompatible changes with version 2.0.0. See the full descriptions here

  • Changed language ordinal method to return the number + ordinal instead of just the ordinal.

  • Changed two digit year parsing cutoff to match strptime.

  • Removed moment#sod and moment#eod in favor of moment#startOf and moment#endOf.

  • Removed moment.humanizeDuration() in favor of moment.duration().humanize().

  • Removed the lang data objects from the top level namespace.

  • Duplicate Date passed to moment() instead of referencing it.



We're looking for co-maintainers! If you want to become a master of time please write to ichernev.


Moment.js is freely distributable under the terms of the MIT license.