moment-strftime
Version:
moment-strftime adds strftime to Moment.js
67 lines (38 loc) • 3.34 kB
Markdown
# moment-strftime
[](http://travis-ci.org/benjaminoakes/moment-strftime)
[](https://flattr.com/submit/auto?user_id=benjaminoakes&url=https://github.com/benjaminoakes/moment-strftime&title=moment-strftime&language=en_GB&tags=github&category=software)
[Moment.js](https://github.com/timrwood/moment) 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](https://github.com/timrwood/moment/issues/49)). 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](https://github.com/loopj/commonjs-date-formatting) [many](https://github.com/loopj/commonjs-date-formatting) ([abandoned, buggy](http://hacks.bluesmoon.info/strftime/)) [solutions](https://github.com/zaius/jdate) 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-strftime`.
## Installation
### Browser
It's preferred that you use Bower, but you can also [download the raw JavaScript](https://raw.githubusercontent.com/benjaminoakes/moment-strftime/master/lib/moment-strftime.js).
### Node.js
`moment-strftime` is available as a Node.js package. The JavaScript itself should work as a CommonJS module, but it has only been tested in Node.js.
npm install moment-strftime
## Usage
`moment-strftime` is a tiny plugin for Moment.js that adds a `strftime` method. It's simple:
```js
moment().strftime("%m/%d/%y %I:%M %p %Z"); // => '01/17/12 08:54 PM EST'
```
In Node.js:
```js
// Gets you everything in Moment.js too
var moment = require('moment-strftime');
moment().strftime("%m/%d/%y %I:%M %p %Z"); // => '01/17/12 08:54 PM EST'
```
## Known Issues
Compatibility: stable Chrome, stable Firefox, stable Safari, IE9+
I've only developed `moment-strftime` 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 [open an issue](https://github.com/benjaminoakes/moment-strftime/issues) or (preferably) make a pull request.
## Contributing
To get up and running:
docker-compose build
docker-compose run test
## Resources
* [cheat strftime](http://errtheblog.com/posts/21-cheat)
* [C strftime](http://pubs.opengroup.org/onlinepubs/007908799/xsh/strftime.html)
## License
MIT (see `LICENSE`)