Instead of modifying the native Date.prototype, Day.js creates a wrapper for the Date object, called Dayjs object.
The Dayjs object is immutable, that is, all API operations that change the Dayjs object in some way will return a new instance of it.
- API Reference
- Parsing
- Get and Set
- Manipulating
- Displaying
- Format
.format(stringWithTokens: string) - Difference
.diff(compared: Dayjs, unit: string (default: 'milliseconds'), float?: boolean) - Unix Timestamp (milliseconds)
.valueOf() - Unix Timestamp (seconds)
.unix() - Days in the Month
.daysInMonth() - As Javascript Date
.toDate() - As Array
.toArray() - As JSON
.toJSON() - As ISO 8601 String
.toISOString() - As Object
.toObject() - As String
.toString()
- Format
- Query
- Plugin APIs
Calling it without parameters returns a fresh Dayjs object with the current date and time.
dayjs();Day.js also parses other date formats.
ISO 8601 string
dayjs('2018-04-04T16:00:00.000Z');dayjs(new Date(2018, 8, 18));Returns a Dayjs from a Unix timestamp (milliseconds since the Unix Epoch)
dayjs(1318781876406);Returns a Dayjs from a Unix timestamp (seconds since the Unix Epoch)
dayjs.unix(1318781876);
dayjs.unix(1318781876.721);Returns a cloned Dayjs.
dayjs().clone();
dayjs(dayjs('2019-01-25')); // passing a Dayjs object to a constructor will also clone itReturns a boolean indicating whether the Dayjs's date is valid.
dayjs().isValid();Returns a number representing the Dayjs's year.
dayjs().year();Returns a number representing the Dayjs's month. Starts at 0
dayjs().month();Returns a number representing the Dayjs's day of the month. Starts at 1
dayjs().date();Returns a number representing the Dayjs's day of the week. Starts on Sunday with 0
dayjs().day();Returns a number representing the Dayjs's hour.
dayjs().hour();Returns a number representing the Dayjs's minute.
dayjs().minute();Returns a number representing the Dayjs's second.
dayjs().second();Returns a number representing the Dayjs's millisecond.
dayjs().millisecond();Returns a Dayjs with the applied changes.
dayjs().set('date', 1);
dayjs().set('month', 3); // April
dayjs().set('second', 30);| Unit | Shorthand | Description |
|---|---|---|
date |
Date of Month | |
day |
d |
Day of Week (Sunday as 0, Saturday as 6) |
month |
M |
Month |
year |
y |
Year |
hour |
h |
Hour |
minute |
m |
Minute |
second |
s |
Second |
millisecond |
ms |
Millisecond |
Dayjs objects can be manipulated in many ways.
dayjs('2019-01-25')
.add(1, 'day')
.subtract(1, 'year').toString(); // Fri, 26 Jan 2018 00:00:00 GMTReturns a cloned Dayjs with a specified amount of time added.
dayjs().add(7, 'day');Returns a cloned Dayjs with a specified amount of time subtracted.
dayjs().subtract(7, 'year');Returns a cloned Dayjs set to the start of the specified unit of time.
dayjs().startOf('week');Returns a cloned Dayjs set to the end of the specified unit of time.
dayjs().endOf('month');Returns a string with the Dayjs's formatted date.
To escape characters, wrap them in square or culy brackets (e.g. [G] {um}).
dayjs().format(); // current date in ISO6801, without fraction seconds e.g. '2020-04-02T08:02:17-05:00'
dayjs('2019-01-25').format('{YYYY} MM-DDTHH:mm:ssZ[Z]'); // '{2019} 01-25T00:00:00-02:00Z'
dayjs('2019-01-25').format('DD/MM/YYYY'); // '25/01/2019'| Format | Output | Description |
|---|---|---|
YY |
18 | Two-digit year |
YYYY |
2018 | Four-digit year |
M |
1-12 | The month, beginning at 1 |
MM |
01-12 | The month, 2-digits |
MMM |
Jan-Dec | The abbreviated month name |
MMMM |
January-December | The full month name |
D |
1-31 | The day of the month |
DD |
01-31 | The day of the month, 2-digits |
d |
0-6 | The day of the week, with Sunday as 0 |
dd |
Su-Sa | The min name of the day of the week |
ddd |
Sun-Sat | The short name of the day of the week |
dddd |
Sunday-Saturday | The name of the day of the week |
H |
0-23 | The hour |
HH |
00-23 | The hour, 2-digits |
h |
1-12 | The hour, 12-hour clock |
hh |
01-12 | The hour, 12-hour clock, 2-digits |
m |
0-59 | The minute |
mm |
00-59 | The minute, 2-digits |
s |
0-59 | The second |
ss |
00-59 | The second, 2-digits |
SSS |
000-999 | The millisecond, 3-digits |
Z |
+5:00 | The offset from UTC |
ZZ |
+0500 | The offset from UTC, 2-digits |
A |
AM PM | |
a |
am pm |
- More available formats
Q Do k kk X x ...in pluginAdvancedFormat
Returns a number indicating the difference of two Dayjss in the specified unit.
const date1 = dayjs('2019-01-25');
const date2 = dayjs('2018-06-05');
date1.diff(date2); // 20214000000
date1.diff(date2, 'months'); // 7
date1.diff(date2, 'months', true); // 7.645161290322581
date1.diff(date2, 'days'); // 233Returns the number of milliseconds since the Unix Epoch for the Dayjs.
dayjs('2019-01-25').valueOf(); // 1548381600000Returns the number of seconds since the Unix Epoch for the Dayjs.
dayjs('2019-01-25').unix(); // 1548381600Returns the number of days in the Dayjs's month.
dayjs('2019-01-25').daysInMonth(); // 31Returns a copy of the native Date object parsed from the Dayjs object.
dayjs('2019-01-25').toDate();Returns an array that mirrors the parameters from new Date().
dayjs('2019-01-25').toArray(); // [ 2019, 0, 25, 0, 0, 0, 0 ]Returns the Dayjs formatted in an ISO8601 string.
dayjs('2019-01-25').toJSON(); // '2019-01-25T02:00:00.000Z'Returns the Dayjs formatted in an ISO8601 string.
dayjs('2019-01-25').toISOString(); // '2019-01-25T02:00:00.000Z'Returns an object with the date's properties.
dayjs('2019-01-25').toObject();
/* { years: 2019,
months: 0,
date: 25,
hours: 0,
minutes: 0,
seconds: 0,
milliseconds: 0 } */Returns a string representation of the date.
dayjs('2019-01-25').toString(); // 'Fri, 25 Jan 2019 02:00:00 GMT'Returns a boolean indicating whether the Dayjs's date is before the other supplied Dayjs's.
dayjs().isBefore(dayjs()); // falseReturns a boolean indicating whether the Dayjs's date is the same as the other supplied Dayjs's.
dayjs().isSame(dayjs()); // trueReturns a boolean indicating whether the Dayjs's date is after the other supplied Dayjs's.
dayjs().isAfter(dayjs()); // falseReturns a boolean indicating whether a variable is a dayjs object or not.
dayjs.isDayjs(dayjs()); // true
dayjs.isDayjs(new Date()); // false.from .to .fromNow .toNow to get relative time
plugin RelativeTime
.isLeapYear to get is a leap year or not
plugin IsLeapYear
.week to get week of the year
plugin WeekOfYear
.isBetween to check if a date is between two other dates
plugin IsBetween