dateutils

codes

declaration
codes

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)
};

hoursAndMinutes

property
DateFormat.hoursAndMinutes

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()

format

property
DateFormat.format

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
}

shortDateFormat

property
DateFormat.shortDateFormat

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)

formatRange

property
DateFormat.formatRange

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)
  }
}

formatDefiningRangeDuration

property
DateFormat.formatDefiningRangeDuration

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())
}

patterns

property
DateFormat.patterns

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'
}