Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
moment-strftime (changing names to moment-tokens) adds strftime and friends to Moment.js
branch: master
Failed to load latest commit information.
lib Add '%F' replacement
spec Disable some examples I'm not sure about...
.gitignore Use `roboconf`
Cakefile Clean up after `npm`
LICENSE Split out LICENSE Update
package.json Bump version


(Formerly moment-strftime -- we're changing names to reflect forthcoming feature additions)

Flattr this git repo

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 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 and friends, why would you need anything else? Enter moment-tokens.



Pre-compiled for easy use with the rest of your JavaScript:


moment-tokens (and the former moment-strftime) are available as Node.js packages. The JavaScript itself should work as a CommonJS module, but it has only been tested in Node.js.

npm install moment-strftime
# NOTE: the current moment-tokens module is a fork that's in process of being merged


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

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

In Node.js:

// Gets you everything in Moment.js too
moment = require('moment-strftime');
moment().strftime("%m/%d/%y %I:%M %p %Z"); // => '01/17/12 08:54 PM EST'

Known Issues

I've only developed moment-tokens as far as I need it right now, rather than implementing features I don't need yet. I've noticed that implementing "unused" features often leads to bugs, so the plan is to implement on an as-needed basis.

If you run into an issue or unimplemented feature that you need, please let me know. Contributions are welcome as well.


The library and specs are written in CoffeeScript (NOTE: we're moving to JavaScript). You'll need Node.js for development.

To get up and running:

npm install

If everything is set up correctly, you should see:

Cakefile defines the following tasks:





Something went wrong with that request. Please try again.