Moment.js is a JavaScript library I wrote to help parse, validate, manipulate, and display dates.
moment().format('MMMM Do YYYY, h:mm:ss a'); // July 22nd 2014, 9:44:53 am
moment("20111031", "YYYYMMDD").fromNow(); // 3 years ago
moment().subtract('days', 3).calendar(); // Last Saturday at 9:45 AM
moment().subtract('days', 1).calendar(); // Yesterday at 9:45 AM
moment().calendar(); // Today at 9:45 AM
It has support for over 70 languages, all contributed by other developers.
moment().lang('en').format('LLLL'); // Tuesday, July 22 2014 9:49 AM
moment().lang('es').format('LLLL'); // martes, 22 de julio del 2014 9:49
moment().lang('th').format('LLLL'); // วันอังคารที่ 22 กรกฎาคม 2014 เวลา 9 นาฬิกา 51 นาที
moment().lang('ja').format('LLLL'); // 2014年7月22日午前9時52分 火曜日
It is extensively documented and well tested.
It has inspired people to write ports in Python, PHP, and Objective-C.
With over 17000 stars on GitHub, it is one of the top 10 most popular JavaScript libraries.
Moment.js is a community effort. With a hundred committers and many more contributing bug reports, plugins, and ideas, it has grown much bigger than I ever thought it would when I started writing it over 3 years ago.
In early 2013, I handed off the Project Lead role to Iskren Ivov Chernev in order to spend more time with my newborn daughter.
I also designed and built the website for momentjs.com.