Class DateTime

DateTime object

Adds formatting, parsing and timezone support to a standard Date object

Hierarchy

  • DateTime

Constructors

Properties

date: Date
timezone: Timezone = SystemTimeZone

The timezone of the date

cache: Record<string, DateTimeFormat> = {}
converters: {
    [key: string]: ((date) => string);
} = ...

Type declaration

  • [key: string]: ((date) => string)
      • (date): string
      • Parameters

        Returns string

dayMap: string[] = []
dayNames: Record<string, string> = {}
firstWeekDay: number = 1
monthNames: string[] = []

Methods

  • Compare with given date

    Returns:

    • -1 if this interval is smaller than the other
    • 0 if intervals are equal
    • 1 if this interval is greater than the other

    Parameters

    Returns number

    number

  • Format the date into a string

    You can use the following characters. You can escape a character with a \ to output it as given.

    d - The day of the month (from 01 to 31) D - A textual representation of a day (three letters) j - The day of the month without leading zeros (1 to 31) l (lowercase 'L') - A full textual representation of a day N - The ISO-8601 numeric representation of a day (1 for Monday, 7 for Sunday) S - The English ordinal suffix for the day of the month (2 characters st, nd, rd or th. Works well with j) w - A numeric representation of the day (0 for Sunday, 6 for Saturday) z - The day of the year (from 0 through 365) W - The ISO-8601 week number of year (weeks starting on Monday) F - A full textual representation of a month (January through December) m - A numeric representation of a month (from 01 to 12) M - A short textual representation of a month (three letters) n - A numeric representation of a month, without leading zeros (1 to 12) t - The number of days in the given month L - Whether it's a leap year (1 if it is a leap year, 0 otherwise) o - The ISO-8601 year number Y - A four digit representation of a year y - A two digit representation of a year a - Lowercase am or pm A - Uppercase AM or PM B - Swatch Internet time (000 to 999) g - 12-hour format of an hour (1 to 12) G - 24-hour format of an hour (0 to 23) h - 12-hour format of an hour (01 to 12) H - 24-hour format of an hour (00 to 23) i - Minutes with leading zeros (00 to 59) s - Seconds, with leading zeros (00 to 59) u - Microseconds (added in PHP 5.2.2) e - The timezone identifier (Examples: UTC, GMT, Atlantic/Azores) I (capital i) - Whether the date is in daylights savings time (1 if Daylight Savings Time, 0 otherwise) O - Difference to Greenwich time (GMT) in hours (Example: +0100) P - Difference to Greenwich time (GMT) in hours:minutes (added in PHP 5.1.3) T - Timezone abbreviations (Examples: EST, MDT) Z - Timezone offset in seconds. The offset for timezones west of UTC is negative (-43200 to 50400) c - The ISO-8601 date (e.g. 2013-05-05T16:34:42+00:00) r - The RFC 2822 formatted date (e.g. Fri, 12 Apr 2013 12:01:05 +0200) U - The seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)

    Parameters

    • format: string

    Returns string

  • 0 for sunday, 1 for monday, 2 for tuesday

    Returns number

  • Get the numeric day number of the year

    Returns number

  • Get the number of days in the current month

    Returns number

  • Parameters

    • colon: "" | ":" = ":"

    Returns string

  • Gets the month. Unlike JS it's 1 - 12

    Returns number

  • Private

    Get the offset between the system timezone and the date timezone in minutes.

    For example if the computer has europe/amsterdam and the date UTF it's 60 minutes in winter time.

    Returns number

  • Gets the time value in milliseconds.

    Returns number

  • User timezone offset in minutes

    eg.

    const browser = new Date("2021-10-21T16:00:00+00:00");

    const amsterdam = utc.toTimezone("europe/amsterdam");

    console.log(amsterdam.getUserTimezoneOffset()); // 120 (in daylight savings time)

    Returns number

  • Like getDay but take firstWeekDay of the week into account 0 = first day of the week, 6 = last day

    Returns number

  • The ISO-8601 week number of year (weeks starting on Monday)

    Returns number

  • Check if current date is in a leap year

    Returns boolean

  • Sets the hour value in the Date object

    Parameters

    • hours: number

      A numeric value equal to the hours value.

    • min: number = ...
    • sec: number = ...

      A numeric value equal to the seconds value.

    • ms: number = ...

    Returns DateTime

    Params

    min A numeric value equal to the minutes value.

  • Convert date to timezone

    Type Parameters

    • T extends string

    Parameters

    • timezone: Timezone

      eg. europe/amsterdam

    Returns DateTime

    Example

    On computer with Amsterdam timezone

    const browser = new Date("2021-10-21T16:00:00+00:00");
    console.log(browser.format("c"), browser.getTimeZone());
    const riga = browser.toTimezone("europe/riga");

    console.log(riga.format("c"), riga.getTimeZone());

    const utc = riga.toUTC();

    console.log(utc.format("c"), utc.getTimeZone());

    Output: 2021-10-21T18:00:00+02:00 Europe/Amsterdam 2021-10-21T19:00:00+03:00 europe/riga 2021-10-21T16:00:00+00:00 UTC

  • Parameters

    • format: string

    Returns string

  • Create date by given format. See DateTime.format. Supports: Y, y, m, n, d, j, H, h, G, g, i, s, a, A

    Parameters

    • dateStr: string
    • format: string = "c"
    • Optional timezone: Timezone

    Returns undefined | DateTime

    Example

    const date = Date.createFromFormat("2021-10-21 21:09", "Y-m-d H:i"));

    const date = console.log(Date.createFromFormat("10/12/2021 9:09am", "m/d/Y g:ia", "America/New_York));

Generated using TypeDoc