d8.js
d8 is a date parsing and formatting micro-framework for modern JavaScript engines.
d8 uses Templ8 to output a String representation of a Date, based on php formatting options.
As d8 extends JavaScript's native Date
& Date.prototype
– the CORRECT way – there is no actual global called d8. Instead all static and instance methods are available from the native Date
& Date.prototype
respectively.
currently the only locales available are:
but feel free to create a locale for your specific nationality and submit a pull request! :D
WARNING!
This is an, as yet, untested and incompletely documented framework. Use at your own risk.
browser usage
<script src="/path/to/Templ8/Templ8.client.min.js" type="text/javascript"></script>
<script src="/path/to/d8/locale/en-GB.js" type="text/javascript"></script>
<script src="/path/to/d8/d8.min.js" type="text/javascript"></script>
nodejs usage
require( 'd8/locale/en-GB.js' );
require( 'd8' );
As mentioned above d8 extends JavaScript's native Date
& Date.prototype
, so when requiring d8, you don't need to assign it to a variable to use d8's features.
API
Static methods
isLeapYear( year:String ):Boolean
setLeapYear( date:Date ):Void
toDate( date:String, format:String ):Date
Static properties
filters
An Object of all the available filters for formatting a Date.
formats
An Object containing some default date formats:
ISO_8601 | Y-m-dH:i:sP |
ISO_8601_SHORT | Y-m-d |
RFC_850 | l, d-M-y H:i:s T |
RFC_2822 | D, d M Y H:i:s O |
sortable | Y-m-d H:i:sO |
Instance methods
GMTOffset( colon:Boolean ):String
ISODay():Number
ISODaysInYear():Number
ISOFirstMondayOfYear():Date
ISOWeek():Number
ISOWeeksInYear():Number
adjust( interval:Object|String, value:Number ):Date
between( date_lower:Date, date_higher:Date ):Boolean
clearTime():Date
clone():Date
dayOfYear():Number
firstOfTheMonth():Date
format( format:String ):String
isDST():Boolean
isLeapYear():Boolean
lastOfTheMonth():Date
timezone():String
Date formatting and parsing options
day
d | Day of the month, 2 digits with leading zeros |
D | A textual representation of a day, three letters |
j | Day of the month without leading zeros |
l | A full textual representation of the day of the week |
N | ISO-8601 numeric representation of the day of the week |
S | English ordinal suffix for the day of the month, 2 characters |
w | Numeric representation of the day of the week |
z | The day of the year (starting from 0) |
### week
W | ISO-8601 week number of year, weeks starting on Monday |
### month
F | A full textual representation of a month |
m | Numeric representation of a month, with leading zeros |
M | A short textual representation of a month, three letters |
n | Numeric representation of a month, without leading zeros |
t | Number of days in the given month |
### year
L | Whether it's a leap year |
o | ISO-8601 year number. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead. |
Y | A full numeric representation of a year, 4 digits |
y | A two digit representation of a year |
### time
a | Lowercase Ante meridiem and Post meridiem |
A | Uppercase Ante meridiem and Post meridiem |
g | 12-hour format of an hour without leading zeros |
G | 24-hour format of an hour without leading zeros |
h | 12-hour format of an hour with leading zeros |
H | 24-hour format of an hour with leading zeros |
i | Minutes with leading zeros |
s | Seconds, with leading zeros |
u | Milliseconds |
### timezone
O | Difference to Greenwich time (GMT) in hours |
P | Difference to Greenwich time (GMT) with colon between hours and minutes |
T | Timezone abbreviation |
Z | Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. |
### full date/time
c | ISO 8601 date |
r | RFC 2822 formatted date |
U | Seconds since the Unix Epoch January 1 1970 00:00:00 GMT |