moment-strftime adds strftime to Moment.js


Moment.js is a great, lightweight date-manipulation library. It also has a very approachable date format syntax that would be familiar to most people who have ever had to fill out a form (e.g., guess what 'YYYY-MM-DD' means).

Most programmers however, are familiar with other date formatting syntax. The Unix-style strftime is commonly found in many languages' standard libraries. Unfortunately, it is still absent in JavaScript.

Moment.js helps with a lot of the pain associated with Date handling in JavaScript, but it doesn't handle strftime (nor would will it, it seems). If you are working in a language that does have strftime, it seems awkward to have to use another format when using JavaScript (especially if you're trying to keep formats consistent between languages).

That's unfortunate. There are too many (abandoned, buggy) solutions for date handling in JavaScript. Moment.js has the most steam behind it because of all the other features it has going for it.

But... if Moment.js just had strftime, why would you need anything else? Enter moment-strftime.

moment-strftime should work as a CommonJS module in most cases. There's also a Node.js pacakage:

npm install moment-strftime

moment-strftime is a tiny plugin for Moment.js that adds a strftime method. It's simple:

moment().strftime("%m/%d/%y %I:%M %p %Z") // => '01/17/12 08:54 PM EST'

The library and specs are written in CoffeeScript. You'll need Node.js for development.

To get up and running:


If everything is set up correctly, you should see:

Cakefile defines the following tasks: