3.0.0 • Published 10 years ago

datef v3.0.0

Weekly downloads
208
License
MIT
Repository
github
Last release
10 years ago

datef NPM version Build Status Coverage Status

datef is a Javascript date formatting library, both for browser and node.js.

Features

  • Can output: year, full year, month, day, hour, minutes, seconds, milliseconds and timezone — both zero padded and not
  • Simple localization
  • Built-in formats and easyly extensible
  • Doesn't mess with built-in prototypes
  • Acts as node.js and requirejs/amd module, and have .noConflict method in case no module system is present (e.g. plain browser environment)
  • No external dependencies
  • Contains predefined formats for some ISO8601 date and time representation
  • Thoroughly annotated with jsdoc, so if your IDE/editor supports it, you may never need interrupt yourself from code

Usage

Node.js

npm install datef
var datef = require('datef');
datef('MM.YYYY');

Require.js

require.config({
    paths: {
        'datef': 'path/to/datef'
    }
})
require(['datef'], function(datef){
    datef('MM.YYYY');
});

Browser

<script src="datef.js"></script>
<script>
    datef('MM.YYYY');
</script>

Basic usage

datef('dd.MM.YY', new Date()); // "13.08.13"
datef('dd.MM.YY'); // second argument is optional; datef takes Date.now() if no date is provided

var d = new Date();
d.setFullYear(2045);
datef('dd.MM.YYYY', d); // "13.08.2045"

Languages

Node.js

datef.lang('ru');
datef('dd MMMM'); // 13 августа

Require.js

require.config({
    paths: {
        'datef': 'path/to/datef',
        'datef_ru': 'path/to/datef_lang/ru'
    }
})

require(['datef', 'datef_ru'], function(datef){
    datef.lang('ru');
    datef('dd MMMM'); // 13 августа
});

Browser

<script src="datef.js"></script>
<script src="lang/ru.js"></script>
<script>
    datef.lang('ru');
    datef('dd MMMM'); // 13 августа
</script>

Custom formatters

// predefined formats
datef.formatters(); // ['ISODate','ISOTime','ISODateTime','ISODateTimeTZ']
datef('ISODateTimeTZ', d); // "2013-08-13T15:01:29 -04:00"

// defining your own simple format
datef.register('myFormat', 'd.M.YY');
datef('myFormat', d); // "13.8.13"

// defining your own format with i10n
datef.register('myI10nFormat', {
    'en': 'MMMM dd, DD',
    'ru': 'DD, dd MMMM',
    'default': 'dd MMMM'
});
datef('myI10nFormat', d); // "August 13, Tuesday"
datef.lang('ru');
datef('myI10nFormat', d); // "Вторник, 13 августа"
datef.lang('uk');
datef('myI10nFormat', d); // "13 жніўня"

Cleaning global namespace

This is similar to Backbone.noConflict()

<script>var datef = 'My very important data';</script>
…
<script src="datef.js"></script>

<script>
console.log(typeof datef); // "function"
var formattingLib = datef.noConflict();
console.log(datef); // 'My very important data'
</script>

Tokens

Full list of tokens possible in format string include:

  • YYYY: 4-digit year
  • YY: last 2 digit of year
  • MMMM: full name of month
  • MMM: short name of month
  • MM: ISO8601-compatible number of month (i.e. zero-padded) in year (with January being 1st month)
  • M: number of month in year without zero-padding (with January being 1st month)
  • DDD: full name of day
  • DD: short name of day
  • D: min name of day
  • dd: zero-padded number of day in month
  • d: number of day in month
  • HH: zero-padded 24 hour time
  • H: 24 hour time
  • hh: zero-padded 12 hour time
  • h: 12 hour time
  • mm: zero-padded minutes
  • m: minutes
  • ss: zero-padded seconds
  • s: seconds
  • ff: zero-padded milliseconds, 3 digits
  • f: milliseconds
  • A: AM/PM
  • a: am/pm
  • ZZ: time-zone in ISO8601-compatible basic format (i.e. "-0400")
  • Z: time-zone in ISO8601-compatible extended format (i.e. "-04:00")
3.0.0

10 years ago

2.1.0

10 years ago

2.0.0

10 years ago

1.0.3

11 years ago

1.0.2

11 years ago

1.0.1

11 years ago

1.0.0

11 years ago

0.0.7

11 years ago

0.0.5

11 years ago

0.0.4

12 years ago

0.0.3

12 years ago

0.0.2

12 years ago

0.0.1

12 years ago