Parse, validate, manipulate, and display dates in javascript.
JavaScript Other
Latest commit b8a7fc3 Mar 21, 2017 @ichernev ichernev Build 2.18.1
Failed to load latest commit information.
benchmarks Added benchmarks for some supported operations Sep 3, 2016
locale Build 2.18.0 Mar 18, 2017
meteor Bump version to 2.18.1 Mar 21, 2017
min Build 2.18.1 Mar 21, 2017
scripts Fix fatal error Mar 2, 2017
src Bump version to 2.18.1 Mar 21, 2017
tasks Fix lint errors Mar 18, 2017
templates Apply custom header to generated files Nov 6, 2016
typing-tests Add a test Mar 11, 2017
.editorconfig Add .editorconfig for project May 4, 2015
.gitattributes Introduce end-of-line normalization Mar 24, 2016
.gitignore added uzbek latin locale Mar 2, 2017
.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 Remove npmignore file from npm package Sep 1, 2016
.spmignore ignore files in packages May 4, 2015
.travis.yml moving install commands to install phase Mar 11, 2017 Update changelog for 2.18.1 Mar 21, 2017 Create _isValid property for durations Mar 2, 2017
Gruntfile.js Use npm to run typescript tests Mar 18, 2017 moment issue template Jun 24, 2016
LICENSE license typo Nov 1, 2016
Moment.js.nuspec Bump version to 2.18.1 Mar 21, 2017 Update Mar 18, 2016
bower.json Add and typing-tests to bower ignores Nov 6, 2016
component.json Bump version to 2.18.1 Mar 21, 2017
composer.json Prefer HTTPS links when they exist Mar 11, 2017
ender.js play nicely within an Ender build Apr 4, 2012
moment.d.ts Moment interface now extends Object to inherit toString() function Mar 11, 2017
moment.js Build 2.18.1 Mar 21, 2017
package.js add a dojo build profile Nov 26, 2012
package.json Bump version to 2.18.1 Mar 21, 2017

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.