Option name | Type | Description |
---|---|---|
d | Date | [01-31] |
D | Short_Day_Name | [Su, Mo, Tu, We, Th, Fr, Sa] |
j | Date | [1-31] |
l | Full_day_name | [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday] |
w | Week_day_number | 0=Sunday, 1=Monday, 2=Tuesday etc... |
z | Nth_day_of_year | [1-365] except leap years |
F | Full_month_name | [January, February, ...] |
m | Month_number | [01-12] |
M | Month_name_stripped_to_three_letters | [Jan, Feb, ...] |
n | Month_number | [1-12] |
t | Days_in_current_month | [28-31] |
Y | Full_year | [1900, ...] |
y | Last_two_digits_of_a_year | [01-99] |
a | Time_postfix | [am|pm] |
A | Time_postfix | [AM|PM] |
g | Hours_in_12h_format | [1-12] |
G | Hours_in_24h_format | [0-23] |
h | Hour_in_12h_format_with_padding | [01-12] |
H | Hours_in_24h_format_with_padding | [00-23] |
i | Minutes_with_padding | [00-59] |
s | Seconds_with_padding | [00-59] |
Z | Timezone | 2 for GMT+2 |
Formatting patterns listed above
const codes = {
d: d => leftPad(d.getDate(), 2, '0'),
D: (d, l) => l.shortDayNames[d.getDay()],
j: d => d.getDate(),
l: (d, l) => l.dayNames[d.getDay()],
w: d => d.getDay(),
z: d => d.getDayInYear(),
F: (d, l) => l.monthNames[d.getMonth() - 1],
m: d => leftPad(d.getMonth(), 2, '0'),
M: (d, l) => l.monthNames[d.getMonth() - 1].substring(0, 3),
n: d => (d.getMonth()),
t: d => d.getDaysInMonth(),
Y: d => d.getFullYear(),
y: d => ('' + d.getFullYear()).substring(2, 4),
a: d => (d.getHours() < 12 ? 'am' : 'pm'),
A: d => (d.getHours() < 12 ? 'AM' : 'PM'),
g: d => ((d.getHours() % 12) ? d.getHours() % 12 : 12),
G: d => d.getHours(),
h: d => leftPad((d.getHours() % 12) ? d.getHours() % 12 : 12, 2, '0'),
H: d => leftPad(d.getHours(), 2, '0'),
i: d => leftPad(d.getMinutes(), 2, '0'),
s: d => leftPad(d.getSeconds(), 2, '0'),
Z: d => (d.date.getTimezoneOffset() / -60)
};
Returns hours and minutes as hours in decimal. For example DateFormat.hoursAndMinutes(22,30)
returns 22.5
DateFormat.hoursAndMinutes = (hours, minutes) => (Math.round((hours + minutes / 60) * 100) / 100).toString()
Option name | Type | Description |
---|---|---|
dateTime | DateTime | DateTime object to be formatted |
format | String | Pattern to be used for formatting |
locale | DateLocale | Locale to be used for formatting |
Formats dateTime. For example DateFormat.format(DateTime.fromDateTime(2014, 2, 25, 14, 30), 'Y-m-d H:i:s', DateLocale.EN)
returns 2014-02-25 14:30:00
DateFormat.format = (dateTime, format, locale) => {
let result = '';
let special = false;
let ch = '';
for (let i = 0; i < format.length; ++i) {
ch = format.charAt(i)
if (!special && ch === '\\') {
special = true
} else {
if (special) {
special = false
result += ch
} else {
result += codeToValue(dateTime, ch, locale)
}
}
}
return result
}
Option name | Type | Description |
---|---|---|
dateTime | DateTime | DateTime to be formattend |
locale | DateLocale | locale to be used for formatting |
Shorthand for formatting in short date format. For example DateFormat.shortDateFormat(DateTime.fromDateTime(2014, 2, 25, 14, 30), DateLocale.EN)
returns 2/25/2014
DateFormat.shortDateFormat = (dateTime, locale) => DateFormat.format(dateTime, locale ? locale.shortDateFormat : 'n/j/Y', locale)
Option name | Type | Description |
---|---|---|
dateRange | DateRange | DateRange to be formatted |
locale | DateLocale | to be used for formatting |
Formats DateRange. TODO
DateFormat.formatRange = (dateRange, locale) => {
if (dateRange._hasTimes) {
return locale.daysLabel(dateRange.days()) + ' ' + locale.hoursLabel(dateRange.hours(), dateRange.minutes())
} else {
return DateFormat.shortDateFormat(dateRange.start, locale) + ' - ' + DateFormat.shortDateFormat(dateRange.end, locale)
}
}
Option name | Type | Description |
---|---|---|
dateRange | ||
locale |
Need's documentation
DateFormat.formatDefiningRangeDuration = (dateRange, locale) => {
const years = parseInt(dateRange.days() / 360, 10);
if (years > 0) return locale.yearsLabel(years)
const months = parseInt(dateRange.days() / 30, 10);
if (months > 0) return locale.monthsLabel(months)
return locale.daysLabel(dateRange.days())
}
Option name | Type | Description |
---|---|---|
ISO8601LongPattern | DateLocale.EN | 2014-02-05 14:30:00 |
ISO8601ShortPattern | DateLocale.EN | 2014-02-05 |
ShortDatePattern | DateLocale.EN | 2/5/2014 |
ShortDatePattern | DateLocale.EN | 2/5/2014 |
FiShortDatePattern | DateLocale.EN | 5.2.2014 |
FiWeekdayDatePattern | DateLocale.EN | We 5.2.2014 |
FiWeekdayDateTimePattern | DateLocale.FI | ke 5.2.2014 klo 14:30 (for DateLocale.FI) |
LongDatePattern | DateLocale.EN | Wednesday, February 05, 2014 |
FullDateTimePattern | DateLocale.EN | Wednesday, February 05, 2014 2:30:00 PM |
MontdDayPattern | DateLocale.EN | February 05 |
ShortTimePattern | DateLocale.EN | 2:30 PM |
LongTimePattern | DateLocale.EN | 2:30:00 PM |
SortableDateTimePattern | DateLocale.EN | 2014-02-05T14:30:00 |
UniversalSortableDateTimePattern | DateLocale.EN | 2014-02-05 14:30:00+-200 |
YearMontdPattern | DateLocale.EN | February, 2014 |
List of commonly used date format patterns
Above are listed results for following command: DateFormat.format(DateTime.fromDateTime(2014, 2, 5, 14, 30), PATTERN, DateLocale.EN)
DateFormat.patterns = {
ISO8601LongPattern: 'Y-m-d H:i:s',
ISO8601ShortPattern: 'Y-m-d',
ShortDatePattern: 'n/j/Y',
FiShortDatePattern: 'j.n.Y',
FiWeekdayDatePattern: 'D j.n.Y',
FiWeekdayDateTimePattern: 'D j.n.Y k\\lo G:i',
LongDatePattern: 'l, F d, Y',
FullDateTimePattern: 'l, F d, Y g:i:s A',
MonthDayPattern: 'F d',
ShortTimePattern: 'g:i A',
LongTimePattern: 'g:i:s A',
SortableDateTimePattern: 'Y-m-d\\TH:i:s',
UniversalSortableDateTimePattern: 'Y-m-d H:i:sO',
YearMonthPattern: 'F, Y'
}