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
- Host: GitHub
- URL: https://github.com/chocolatetoothpaste/epoch
- Owner: chocolatetoothpaste
- Created: 2012-08-18T19:38:53.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2017-03-24T20:22:30.000Z (almost 9 years ago)
- Last Synced: 2025-03-24T08:55:00.144Z (10 months ago)
- Topics: date-formatting, datetime, javascript
- Language: JavaScript
- Homepage:
- Size: 116 KB
- Stars: 10
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
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