An open API service indexing awesome lists of open source software.

https://github.com/chocolatetoothpaste/epoch

epoch.js - Awesome date formatting and calculating for JavaScript
https://github.com/chocolatetoothpaste/epoch

date-formatting datetime javascript

Last synced: 9 months ago
JSON representation

epoch.js - Awesome date formatting and calculating for JavaScript

Awesome Lists containing this project

README

          

epoch.js - Wonderful Date Formatting and Calculations
=====================================================

[Support Development](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=GRFU5X5WPWR6E)

### Easy to use
npm install epoch.js

var epoch = require('epoch.js');

var e = epoch(); // defaults to current date/time
var date = epoch( '2013-12-08 12:34:56' ); // setting date/time

// epoch now accepts a native Date object as an argument (and should have a long time ago)

// months numbers run from 0 - 11 in native object
var obj = new Date(1995, 11, 17);
epoch(obj).format('MMM D, YYYY'); // Dec 17, 1995

// clone an epoch object
var f = epoch(date);
f.format('YYYY-MM-DD'); // 2013-12-08

// Robust parsing:
var e = epoch('Friday, November 11th 2016');
var f = epoch('Sat, November 12th 2016 12:04:05');
var g = epoch('dec 21 2017');
var h = epoch('november 3 2017 8:15:16');

### Familiar formatting tokens

date.format('dddd MMM D, YYYY'); // Sunday Dec 8, 2013
epoch('2015-05-04').format('MMMM [the] Do [be with you]') // May the 4th be with you

### Intervals

date.from('2012-12-08'); // 1 year ago
date.from('2019-12-08'); // in 6 years
date.from('2013-12-08 12:34:48'); // less than a minute ago

### Common Format Methods

**epoch.leapYear() or epoch.leap()** --- true/false if year is leap year

**epoch.rfc1123()** --- same as Date.toUTCString()

**epoch.rfc2822()** --- same as Date.toUTCString()

**epoch.iso8601()** --- YYYY-MM-DD[T]hh:mm:ss[+0000]

**epoch.sqldate()** --- YYYY-MM-DD

**epoch.sqltime()** --- hh:mm:ss

**epoch.sqlsod()** --- start of day, YYYY-MM-DD [00:00:00]

**epoch.sqleod()** --- end of day, YYYY-MM-DD [23:59:59]

**epoch.datetime()** --- YYYY-MM-DD hh:mm:ss

**epoch.ordinal()** --- pass in any number and get back the number + ordinal suffix

### Setting/Getting

For all methods listed here, if the method is called with no argument, the current value of that date fragment is returned. If a value is supplied, the internal Date object is updated and the updated date fragment returned. These methods are wrappers for their native equivalents of a similar name.

#### Possible values:

- 5 or "9", integer or stringified integer - sets value
- "-2" or "+4" - adds or subtracts from existing value

#### Setters/Getters:

**epoch.date()**

**epoch.hour()**

**epoch.min()**

**epoch.sec()**

**epoch.milli()**

**epoch.month()**

**epoch.year()**

#### Getters only:

**epoch.day()**

**epoch.time()**

### Formatting

Dates can be formatted using epoch.format() and supplying tokens. Example:

// Sunday Dec 8, 2013
epoch( '2013-12-08 12:34:56' ).format('dddd MMM D, YYYY');

#### Tokens

**a** --- Lowercase am/pm

**A** --- Uppercase AM/PM

**d** --- Numeric representation of the day of the week, 0 - 6 : Sun - Sat

**dd** --- Numeric representation of the day of the week, 1 - 7 : Sun - Sat

**ddd** --- A textual representation of a day, three letters

**dddd** --- A full textual representation of the day of the week

**D** --- Day of the month without leading zeros

**DD** --- Day of the month with leading zeros

**DDD** --- The day of the year (starting from 0)

**h** --- 24-hour format of an hour without leading zeros

**H** --- 12-hour format of an hour without leading zeros

**hh** --- 24-hour format of an hour with leading zeros

**HH** --- 12-hour format of an hour with leading zeros

**LL** --- Last day of the month. Example: YYYY-MM-LL

**m** --- Minutes without leading zeros

**mm** --- Minutes with leading zeros

**M** --- Numeric representation of a month, without leading zeros

**MM** --- Numeric representation of a month, with leading zeros

**MMM** --- A short textual representation of a month, three letters

**MMMM** --- A full textual representation of a month, such as January or March

**o** --- Ordinal suffix, can be used in conjuction with virtually any token. Example: Do, hho, Mo, etc...

**s** --- Seconds, without leading zeros

**ss** --- Seconds, with leading zeros

**u** --- Milliseconds

**U** --- Unix timestamp

**ww** --- ISO-8601 week number of year, weeks starting on Monday

**YY** --- A two digit representation of a year

**YYYY** --- A full numeric representation of a year, 4 digits

**Z** --- 4 digit timezone offset with sign, ex: +/-0000

**ZZ** --- 4 digit timezone offset with sign and colon, ex: +/-00:00

**ZZZ** --- 3 letter time zone abbrev