XTools Logo
XTools
Blog
/
Day.js Playground & Format ReferenceMoment.js Playground & Day.js MigrationDate Calculator & Unix TimestampTime Zone Converter

© 2026 XTools. All rights reserved.

Privacy PolicyContact Us

    Day.js Playground & Format Reference

    Try Day.js format and parse strings live, with a token table, locales, and copyable code
    • Files never leave your device
    • Runs in your browser
    • Free, no sign-up, no watermark
    Loading Day.js…

    Format playground

    Output
     

    Format tokens

    Click a token to insert it into the format string. Examples use the reference date and locale.

    TokenExampleMeaningDay.js
    Year and quarter
    Four-digit yearcore
    Two-digit yearcore
    Quarter (1–4)advancedFormat
    not in Day.jsQuarter, ordinalnot in Day.js
    Month
    Month (1–12)core
    not in Day.jsMonth, ordinalnot in Day.js
    Month, two digitscore
    Month, short namecore
    Month, full namecore
    Day of month and year
    Day of monthcore
    Day of month, ordinaladvancedFormat
    Day of month, two digitscore
    not in Day.jsDay of yearnot in Day.js
    not in Day.jsDay of year, three digitsnot in Day.js
    Day of week
    Day of week (0 = Sunday)core
    Weekday, shortest namecore
    Weekday, short namecore
    Weekday, full namecore
    not in Day.jsDay of week, by localenot in Day.js
    not in Day.jsISO day of week (1 = Monday)not in Day.js
    Week
    Week of year, by localeadvancedFormat + weekOfYear
    Week of year, ordinaladvancedFormat + weekOfYear
    Week of year, two digitsadvancedFormat + weekOfYear
    ISO week of yearadvancedFormat + isoWeek
    ISO week, two digitsadvancedFormat + isoWeek
    Week-numbering year, by localeadvancedFormat + weekYear
    ISO week-numbering yearadvancedFormat + isoWeek
    Hour
    Hour, 0–23core
    Hour, 00–23core
    Hour, 1–12core
    Hour, 01–12core
    Hour, 1–24advancedFormat
    Hour, 01–24advancedFormat
    Minute and second
    Minutecore
    Minute, two digitscore
    Secondcore
    Second, two digitscore
    not in Day.jsTenths of a secondnot in Day.js
    not in Day.jsHundredths of a secondnot in Day.js
    Millisecondscore
    AM / PM
    AM / PMcore
    am / pmcore
    Time zone
    UTC offset, ±HH:mmcore
    UTC offset, ±HHmmcore
    Time zone abbreviationadvancedFormat + timezone
    Time zone nameadvancedFormat + timezone
    Unix time
    Unix secondsadvancedFormat
    Unix millisecondsadvancedFormat
    Localized formats
    Localized timelocalizedFormat
    Localized time with secondslocalizedFormat
    Localized numeric datelocalizedFormat
    Localized date with month namelocalizedFormat
    Localized date and timelocalizedFormat
    Localized date and time with weekdaylocalizedFormat
    Short numeric datelocalizedFormat
    Short date with month namelocalizedFormat
    Short date and timelocalizedFormat
    Short date and time with weekdaylocalizedFormat
    Escaping
    Text in square brackets is printed as iscore

    Parse playground

    Leave empty to parse ISO 8601.

    Relative time

    Each row shifts the reference date, then describes it relative to the reference with from() and calendar().

    Shiftfrom(ref)calendar(ref)
    .add(-45, 'second')
    .add(-10, 'minute')
    .add(-3, 'hour')
    .add(-1, 'day')
    .add(-5, 'day')
    .add(-3, 'month')
    .add(-2, 'year')
    .add(30, 'minute')
    .add(2, 'day')
    .add(1, 'month')

    Durations

    Recipes

    Everyday tasks with live results. “Try” loads one into the code runner below.

    TaskDay.js
    Format the current time
    dayjs().format('YYYY-MM-DD HH:mm:ss')
    →
    Add days
    dayjs('2023-01-01').add(1, 'day').format('YYYY-MM-DD')
    →
    Time from now
    Day.js: relativeTime
    dayjs().subtract(7, 'day').fromNow()
    →
    First day of this month
    dayjs().startOf('month').format('YYYY-MM-DD')
    →
    Last day of this year
    dayjs().endOf('year').format('YYYY-MM-DD')
    →
    Start of this week (locale aware)
    dayjs().startOf('week').format('YYYY-MM-DD ddd')
    →
    Days between two dates
    dayjs().diff(dayjs('2022-01-01'), 'day')
    →
    Days in this month
    dayjs().daysInMonth()
    →
    Quarter of the year
    Day.js: quarterOfYear
    dayjs().quarter()
    →
    Calendar time
    Day.js: calendar
    dayjs().add(1, 'day').calendar()
    →
    Is a date between two others
    Day.js: isBetween
    dayjs('2024-12-31').isBetween('2024-01-01', '2025-01-01')
    →
    Is it today
    Day.js: isToday
    dayjs().isToday()
    →
    Is it a leap year
    Day.js: isLeapYear
    dayjs('2024-01-01').isLeapYear()
    →
    Validate a date strictly
    Day.js: customParseFormat
    dayjs('2023-02-30', 'YYYY-MM-DD', true).isValid()
    →
    Parse a custom format
    Day.js: customParseFormat
    dayjs('13/10/2026 14:30', 'DD/MM/YYYY HH:mm').format()
    →
    Unix timestamp in seconds
    dayjs().unix()
    →
    Current time in UTC
    Day.js: utc
    dayjs.utc().format()
    →
    Time in another time zone
    Day.js: utc + timezone + advancedFormat
    dayjs().tz('America/New_York').format('YYYY-MM-DD HH:mm z')
    →
    Humanize a duration
    Day.js: duration + relativeTime
    dayjs.duration(90, 'minutes').humanize()
    →
    Add a month at the end of a month
    dayjs('2026-01-31').add(1, 'month').format('YYYY-MM-DD')
    →
    Call add() without reassigning
    (() => { const d = dayjs('2026-01-01'); d.add(1, 'day'); return d.format('YYYY-MM-DD') })()
    →

    Code runner

    Type an expression that uses dayjs. It runs right here in your browser, with every plugin from the recipes enabled and the locale above.

    Result

    Playground settings

    Related tools

    • Moment.js Playground & Day.js Migration
    • Date Calculator & Unix Timestamp
    • Time Zone Converter

    How to use Day.js Playground & Format Reference

    Try Day.js formatting, parsing, relative time and durations against a date you choose, with output that updates as you type. Each result comes with the import and dayjs.extend() lines it needs, and a token table shows which plugin every format token requires.

    1. 1

      Set the Reference date and time (or click Now), pick a Locale, and turn on Treat as UTC if your code uses dayjs.utc().

    2. 2

      Type a pattern into Format string or click a preset; click any token in Format tokens to insert it at the cursor.

    3. 3

      Copy the generated code under the Output, which already includes the plugin imports it needs.

    4. 4

      In Parse playground, enter a Date string and an Expected format, and turn on Strict parsing to reject dates that don’t exist.

    5. 5

      Click Try on any of the Recipes to load it into the Code runner, then edit it and watch the result update.

    Frequently asked questions

    Which plugin do I need for a format token?

    The Day.js column of Format tokens says core or names the plugin, for example advancedFormat for Do, Q and X, or localizedFormat for L and LLLL. The code snippet adds the matching import and dayjs.extend() lines for you.

    Why does a token work here but come out wrong in my project?

    This playground loads every plugin. Day.js core only replaces the tokens it knows, so without advancedFormat Q stays as Q and Do becomes the day number followed by a stray o. Extend the plugin the table names; a few Moment tokens, such as DDD or E, don’t exist in Day.js at all.

    Why is 2023-02-30 accepted as a valid date?

    Without strict mode, Day.js rolls an impossible day over into the next month. Turn on Strict parsing (the third argument, true, with the customParseFormat plugin) and the same input is reported as invalid.

    How do I put plain text into a format?

    Wrap it in square brackets. For example, [Week] W, GGGG prints the word Week followed by the ISO week number and year.

    Does the code runner send my code anywhere?

    No. Day.js, its plugins and locale files run inside this page, and your expression is evaluated in your browser with every plugin used by the recipes enabled.

    Can I convert a time to another time zone?

    The Time in another time zone recipe shows dayjs().tz() with the utc and timezone plugins. To compare several zones side by side, use the Time Zone Converter.