Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Parse, validate, manipulate, and display dates in javascript.
Latest commit ff4d890 @ichernev ichernev Merge pull request #2717 from paladox:patch-2
Update Gruntfile.js
Failed to load latest commit information.
benchmarks perf: add duration benchmark, cleanup benchmarking output
locale Moved files to correct places and added tests
meteor Fix for meteor in IE8 (#2308)
min Build 2.10.6
scripts Use whitelist instead of blacklist
src Moved files to correct places and added tests
tasks Reset the locale back to 'en' after defining all locales in min/local…
templates verified 'require' is a function (on templates)
.editorconfig Add .editorconfig for project
.gitignore Update .gitignore
.jscs.json Update grunt jscs
.jshintrc Clean up jscs and jshint errors in tests.
.npmignore Ignore min/tests.js from npm package
.spmignore ignore files in packages
.travis.yml Run travis tests on last IO.js + node versions Fix minor typos in the changelog Update CONTRIBUTING with info about ES6 modules
Gruntfile.js Update Gruntfile.js
LICENSE Update year range in LICENSE
Moment.js.nuspec Bump version to 2.10.6 Update
bower.json bower.json: remove moot `version` field
component.json Bump version to 2.10.6
composer.json Use JavaScript instead of javascript in pkg descriptions
ender.js play nicely within an Ender build
moment.js Build 2.10.6
package.js add a dojo build profile
package.json Bump version to 2.10.6

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.

Something went wrong with that request. Please try again.