Giter VIP home page Giter VIP logo

moment-strftime's Introduction

moment-strftime

Build Status 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-strftime.

Installation

Browser

It's preferred that you use Bower, but you can also download the raw JavaScript.

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:

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
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 or (preferably) make a pull request.

Contributing

To get up and running:

docker-compose build
docker-compose run test

Resources

License

MIT (see LICENSE)

moment-strftime's People

Contributors

benjaminoakes avatar davidrojo avatar drlube avatar himdel avatar j-f1 avatar jscheid avatar nix1 avatar rudloff avatar samj1912 avatar yefrem avatar ziv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

moment-strftime's Issues

%G does not seem to be supported

from the PHP documentation, %G is supposed to be "The full four-digit version of %g".

Tried this

var    format                      = "%A, %d %B, %G %I:%M%p";

moment.lang('en');

var nowDate = new Date(),
       nowMoment = moment(nowDate);

console.log(nowMoment.strftime(langDateTimeFormat));

and I got

Friday, 26 October, %G 01:37PM

Wrong parsing method when first single character in sentence

Related to #16

The parsing method which escapes characters seems to not fully working. For instance, when the sentence starts with a single character that has to be escaped, actually it is not.

Example:
a las 07:30 gives am las 07:30

It seems to come from the regex here which is not matching a first single character and gives - for example - this:

Update moment dependency

Hello,

moment-tokens currently depends on moment 1.3.0 (in bower.json and package.json).
Could it be possible to update that to a more recent version like 2.10?

Regards,

link to compressed and development version broken

Can you fix the links to download the compressed and development versions? The former returns an access denied error, probably due to the access token being expired, and the former just returns a 404.

Thanks!

Deprecate Bower package

I'm not sure how many people are using this, but as Bower's on its way out, we should consider deprecating it.

Bower package

Hello,

It would be nice to have this library as a Bower package.

Regards,

Wrong parsing method

Converting the strftime strings into moment tokens does not fullfill strftime behaviour as any character in string that meets a moment token will be also translated.

Check this output in PHP:

echo strftime("day %d of month %m", Time("now"));
// day 13 of month 10

With the output with moment-strftime

console.log(moment().strftime("day %d of month %m"));
// 2amy 13 of 56ont11 10

An approach could be to extract the tokens of the strftime string, convert them in a moment string, parse the string and then replace the tokens with the parsed string.

Webpack warning when importing strftime

Here is how I am using it in my code (of course, using babel..., etc.):
import moment from 'moment-strftime';

When webpack builds, it issues a warning on the js console:

client?440e:37 [WDS] Warnings while compiling.
client?440e:68 ../~/moment-strftime/lib/moment-strftime.js
Critical dependencies:
4:40-47 require function is used in a way in which dependencies cannot be statically extracted
 @ ../~/moment-strftime/lib/moment-strftime.js 4:40-47

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.