Home Web Front-end JS Tutorial Easily handle dates and times operations in your application using Day.js

Easily handle dates and times operations in your application using Day.js

Jan 13, 2025 pm 04:28 PM

Introduction

Working with dates and times in JavaScript can be challenging, especially when specific formats are required. This complexity often leads to inconsistencies in the dates and times within applications. As a result, developers turn to external tools and libraries such as Day.js to manage these operations easily and more accurately.

In this article, we will explore what Day.js is, its basic features, how to use it in your projects, how to extend its functionalities with plugins, and its browser support.

What is Day.js?

Day.js is an easy-to-use lightweight javascript library, designed for handling a wide range of date and time operations, allowing them to be presented in easily readable formats within web applications.

The library can be used on both the client-side(browser) and server-side(Node.Js) environments.

In modern web development, developers seek to prioritize speed and performance when building applications. Large imports and bulky library files are two common hindering factors of these attributes.

Fortunately, Day.js addresses these concerns with a compact file size of just 2KB, making it an ideal choice for managing date and time operations without compromising the application's performance.

Installation

To get started working with the Day.js library in your application, you first need to include it.

To use the library on the client-side, include the following script in the tag of your HTML document.

<script src="path/to/dayjs/dayjs.min.js"></script>
Copy after login
Copy after login
Copy after login
Copy after login

Alternatively, you can access the library via a CDN such as the jsdeliver CDN.

<script src="https://cdn.jsdelivr.net/npm/dayjs@1/dayjs.min.js"></script>
Copy after login
Copy after login
Copy after login
Copy after login

To install the library as a dependency in your application, run the following command:

npm install dayjs
Copy after login
Copy after login
Copy after login
Copy after login

Next, import dayjs into your javascript file:

import dayjs from 'dayjs';
Copy after login
Copy after login
Copy after login
Copy after login

To create a new Day.js instance, call the dayjs() function. If no argument is passed, it returns an object representing the current date and time:

const currentDate = dayjs();
Copy after login
Copy after login
Copy after login
Copy after login

You can then reference this object to perform various operations on dates and times.

Since Day.js objects are immutable, any operations that would modify the object will return a new instance with the updated date and time.

The ISO DateTime format

To effectively work with dates and times we first need to be familiar with ISO and its DateTime format string.

The ISO (International Organization for Standardization) is a global non-governmental organization that develops and publishes international standards across various industries, ensuring consistency and quality worldwide.

One of the standards provided by ISO is the format for representing dates and times globally.

A typical ISO DateTime format string looks like this:

<script src="path/to/dayjs/dayjs.min.js"></script>
Copy after login
Copy after login
Copy after login
Copy after login
  • The T between day and hour acts as a delimiter that separates the date from the time in the string.
  • The Z at the end of the string, which stands for Zulu, indicates that the time is in UTC (Coordinated Universal Time).

The native JavaScript Date object offers a toISOString() method, which helps convert a random date into an ISO string.

<script src="https://cdn.jsdelivr.net/npm/dayjs@1/dayjs.min.js"></script>
Copy after login
Copy after login
Copy after login
Copy after login

Now that we understand the ISO DateTime format, let's explore some of the key features of the Day.js library.

Exploring the Key Features of Day.js

The Day.js library comes with a range of features, some of which can be used to format, parse, manipulate, query, and validate dates and times. Let's explore how we can make use of these key features.

Parsing

The parsing feature provides a straightforward way to create a new Day.js object with a specific date and time. This can be done by passing a native JavaScript Date object, a date string, or a Unix timestamp to the dayjs() function.

npm install dayjs
Copy after login
Copy after login
Copy after login
Copy after login

Formatting

The formatting feature allows you to display dates and times in a specific format. The following method is used to perform formatting on dates and times.

  • format(): This receives a format string and returns the date and time in that customized format.
import dayjs from 'dayjs';
Copy after login
Copy after login
Copy after login
Copy after login

Manipulating

The manipulating feature allows you to adjust the dates and times in different ways. This can be done using the following methods.

  • add(number, timeUnit): Adds a specified amount of time to the date.
const currentDate = dayjs();
Copy after login
Copy after login
Copy after login
Copy after login
  • subtract(number, timeUnit): Subtracts a specified amount of time from the date.
"2024-12-25T14:30:00.049Z"
// year-month-dayThour:minute:second.millisecondZ
Copy after login
Copy after login
Copy after login
  • startOf(timeUnit): Sets the date to the start of a specific time unit, such as the start of a day, week, month, etc.
new Date("may 9 2024").toISOString(); 
// Output: '2024-05-09T23:00:00.000Z'
Copy after login
Copy after login
Copy after login
  • endOf(timeUnit): Sets the date to the end of a specific time unit, such as the end of a day, week, month, etc.
const date1 = dayjs(new Date()); // called with native Date object.
const date2 = dayjs("2024-08-15"); // called with an ISO date string
const date3 = dayjs(1665613200000); // called with a Unix timestamp
Copy after login
Copy after login
Copy after login

Querying

The querying feature allows you to check and compare dates and times. This can be done using the following methods which return a boolean value.

  • isBefore(date): Checks if the date is before the specified date.
<script src="path/to/dayjs/dayjs.min.js"></script>
Copy after login
Copy after login
Copy after login
Copy after login
  • isAfter(date): Checks if the date is after the specified date.
<script src="https://cdn.jsdelivr.net/npm/dayjs@1/dayjs.min.js"></script>
Copy after login
Copy after login
Copy after login
Copy after login
  • isSame(date): Checks if the date is the same as the specified date.
npm install dayjs
Copy after login
Copy after login
Copy after login
Copy after login
  • isBetween(date1, date2): Checks if the date is between two specified dates.
import dayjs from 'dayjs';
Copy after login
Copy after login
Copy after login
Copy after login
  • isLeapYear(): Checks if the year of the date is a leap year.
const currentDate = dayjs();
Copy after login
Copy after login
Copy after login
Copy after login

Validating

The validation feature provides a way to check if the format of the date provided is valid or not. This can be done using the following method:

  • isValid(): Returns a boolean value indicating whether a date is correctly parsed.
"2024-12-25T14:30:00.049Z"
// year-month-dayThour:minute:second.millisecondZ
Copy after login
Copy after login
Copy after login

Extending functionalities with Plugins

The Day.js library offers a variety of independent plugins that can be used to extend its base functionalities. This enables developers to easily perform further complex date and time formatting in their applications.

To use a plugin, you first need to include it and then extend dayjs using the extend() method.

  • To include a plugin via CDN:
new Date("may 9 2024").toISOString(); 
// Output: '2024-05-09T23:00:00.000Z'
Copy after login
Copy after login
Copy after login
  • To extend dayjs using the plugin:
const date1 = dayjs(new Date()); // called with native Date object.
const date2 = dayjs("2024-08-15"); // called with an ISO date string
const date3 = dayjs(1665613200000); // called with a Unix timestamp
Copy after login
Copy after login
Copy after login
  • To include and extend a plugin using ES6 syntax:
const formattedDate = dayjs().format("HH:mm:ss DD-MM-YYYY");
console.log(formattedDate); // '19:57:36 17-08-2024'
Copy after login

Now, let's explore how we can use two of the available plugins in an application.

Calendar plugin

The calendar plugin provides a convenient way to display dates and times in a more human-readable format. It is ideal for use in applications such as event reminders, project management, task planners, etc.

Let's take a look at a simple example of how we can use this plugin in an events reminder app.

To get started, we need to include the Day.js library and the calendar plugin via a CDN.

const futureDate = dayjs().add(5, 'days'); // Adds 5 days to the current date
console.log(futureDate.format()); // Returns the added date in an ISO date format
Copy after login

Next, inside our javascript file, we extend dayjs with the calendar plugin and call the dayjs() function to create a new Day.js instance.

const pastDate = dayjs().subtract(2, 'months');  // Subtracts 2 months from the current date
console.log(pastDate.format()); // Returns the subtracted date in an ISO date format
Copy after login

The Calendar plugin offers customization options to format how you want the dates and times to be presented. You can define a custom format using an object with the following exact properties:

const startOfMonth = dayjs().startOf('month'); // Sets the date to the start of the month
console.log(startOfMonth.format()); // Returns the current date from the start of the month in an ISO date format
Copy after login

In the object, we escape words in the string values, by wrapping them around [] square brackets.

Using this object, we then display the date and time of the events in the event reminder app:

const endOfMonth = dayjs().endOf('month'); // Sets the date to the end of the month
console.log(endOfMonth.format()); // Returns the current date from the end of the month in an ISO date format
Copy after login

In this example, the eventDate is set to a date months away from the present day. In that case, the date is displayed using the format provided in the sameElse property of the customFormat object.

Easily handle dates and times operations in your application using Day.js

If the date of the event eventually becomes a past date, such as a day in the previous week, for example:

<script src="path/to/dayjs/dayjs.min.js"></script>
Copy after login
Copy after login
Copy after login
Copy after login

The date is then displayed using the format specified in the lastWeek property of the customFormat object:
Easily handle dates and times operations in your application using Day.js

RelativeTime plugin

The RelativeTime plugin is a commonly used day.js plugin for displaying date and time differences as relative statements in user interfaces.

The plugin provides 4 different APIs for displaying past and future times:

  • .from(date, [withoutSuffix]): Returns a relative time string that describes how far the date being called on is from the provided date. If the withoutSuffix argument is true, it removes the "ago" suffix from the output.
<script src="https://cdn.jsdelivr.net/npm/dayjs@1/dayjs.min.js"></script>
Copy after login
Copy after login
Copy after login
Copy after login
  • .to(date, [withoutSuffix]): Returns a relative time string that describes how far the provided date is from the date being called on. If the withoutSuffix argument is true, it removes the "in" prefix from the output.
npm install dayjs
Copy after login
Copy after login
Copy after login
Copy after login
  • .fromNow([withoutSuffix]): Returns a relative time string that describes how far the date being called on is from the current date and time. If the withoutSuffix argument is true, it removes the "ago" suffix from the output.
import dayjs from 'dayjs';
Copy after login
Copy after login
Copy after login
Copy after login
  • .toNow([withoutSuffix]): Returns a relative time string that describes how far the current date and time is from the date being called on. If the withoutSuffix argument is true, it removes the "in" prefix from the output.
const currentDate = dayjs();
Copy after login
Copy after login
Copy after login
Copy after login

Let's take a look at a simple example of how we can use the RelativeTime plugin to display the timestamp for comments posted in an application's comment section.

As usual, the first step to take is to include the dayjs and the relativeTime plugin as follows:

"2024-12-25T14:30:00.049Z"
// year-month-dayThour:minute:second.millisecondZ
Copy after login
Copy after login
Copy after login

Then, we extend dayjs with the relativeTime plugin:

new Date("may 9 2024").toISOString(); 
// Output: '2024-05-09T23:00:00.000Z'
Copy after login
Copy after login
Copy after login

After that, we can then display the time a comment was posted, in relation to the current Time:

const date1 = dayjs(new Date()); // called with native Date object.
const date2 = dayjs("2024-08-15"); // called with an ISO date string
const date3 = dayjs(1665613200000); // called with a Unix timestamp
Copy after login
Copy after login
Copy after login

At the time the above code was executed, the commentPostedTime variable was set to the current time, which then resulted in the following relative time string output in the comment:

Easily handle dates and times operations in your application using Day.js

Browser Support and developer popularity

The Day.js library is supported in all modern web browsers. It has an active community with over 19 million NPM downloads.

The library is actively maintained with over 46k github stars and 330 contributors ensuring it remains up-to-date and compatible with the latest JavaScript standards.

Conclusion

In conclusion, utilizing the Day.js library to handle the dates and times operations in your application not only maintains speed and performance but also helps save time by providing ready-to-use functions that can easily be used to format, query, manipulate, parse, and validate dates and times.

The above is the detailed content of Easily handle dates and times operations in your application using Day.js. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Clair Obscur: Expedition 33 - How To Get Perfect Chroma Catalysts
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1677
14
PHP Tutorial
1278
29
C# Tutorial
1257
24
Python vs. JavaScript: The Learning Curve and Ease of Use Python vs. JavaScript: The Learning Curve and Ease of Use Apr 16, 2025 am 12:12 AM

Python is more suitable for beginners, with a smooth learning curve and concise syntax; JavaScript is suitable for front-end development, with a steep learning curve and flexible syntax. 1. Python syntax is intuitive and suitable for data science and back-end development. 2. JavaScript is flexible and widely used in front-end and server-side programming.

JavaScript and the Web: Core Functionality and Use Cases JavaScript and the Web: Core Functionality and Use Cases Apr 18, 2025 am 12:19 AM

The main uses of JavaScript in web development include client interaction, form verification and asynchronous communication. 1) Dynamic content update and user interaction through DOM operations; 2) Client verification is carried out before the user submits data to improve the user experience; 3) Refreshless communication with the server is achieved through AJAX technology.

JavaScript in Action: Real-World Examples and Projects JavaScript in Action: Real-World Examples and Projects Apr 19, 2025 am 12:13 AM

JavaScript's application in the real world includes front-end and back-end development. 1) Display front-end applications by building a TODO list application, involving DOM operations and event processing. 2) Build RESTfulAPI through Node.js and Express to demonstrate back-end applications.

Understanding the JavaScript Engine: Implementation Details Understanding the JavaScript Engine: Implementation Details Apr 17, 2025 am 12:05 AM

Understanding how JavaScript engine works internally is important to developers because it helps write more efficient code and understand performance bottlenecks and optimization strategies. 1) The engine's workflow includes three stages: parsing, compiling and execution; 2) During the execution process, the engine will perform dynamic optimization, such as inline cache and hidden classes; 3) Best practices include avoiding global variables, optimizing loops, using const and lets, and avoiding excessive use of closures.

Python vs. JavaScript: Development Environments and Tools Python vs. JavaScript: Development Environments and Tools Apr 26, 2025 am 12:09 AM

Both Python and JavaScript's choices in development environments are important. 1) Python's development environment includes PyCharm, JupyterNotebook and Anaconda, which are suitable for data science and rapid prototyping. 2) The development environment of JavaScript includes Node.js, VSCode and Webpack, which are suitable for front-end and back-end development. Choosing the right tools according to project needs can improve development efficiency and project success rate.

The Role of C/C   in JavaScript Interpreters and Compilers The Role of C/C in JavaScript Interpreters and Compilers Apr 20, 2025 am 12:01 AM

C and C play a vital role in the JavaScript engine, mainly used to implement interpreters and JIT compilers. 1) C is used to parse JavaScript source code and generate an abstract syntax tree. 2) C is responsible for generating and executing bytecode. 3) C implements the JIT compiler, optimizes and compiles hot-spot code at runtime, and significantly improves the execution efficiency of JavaScript.

Python vs. JavaScript: Use Cases and Applications Compared Python vs. JavaScript: Use Cases and Applications Compared Apr 21, 2025 am 12:01 AM

Python is more suitable for data science and automation, while JavaScript is more suitable for front-end and full-stack development. 1. Python performs well in data science and machine learning, using libraries such as NumPy and Pandas for data processing and modeling. 2. Python is concise and efficient in automation and scripting. 3. JavaScript is indispensable in front-end development and is used to build dynamic web pages and single-page applications. 4. JavaScript plays a role in back-end development through Node.js and supports full-stack development.

From Websites to Apps: The Diverse Applications of JavaScript From Websites to Apps: The Diverse Applications of JavaScript Apr 22, 2025 am 12:02 AM

JavaScript is widely used in websites, mobile applications, desktop applications and server-side programming. 1) In website development, JavaScript operates DOM together with HTML and CSS to achieve dynamic effects and supports frameworks such as jQuery and React. 2) Through ReactNative and Ionic, JavaScript is used to develop cross-platform mobile applications. 3) The Electron framework enables JavaScript to build desktop applications. 4) Node.js allows JavaScript to run on the server side and supports high concurrent requests.

See all articles