Skip to content

A lightweight and developer-friendly **date formatting library** with full **i18n (internationalization)** support. Easily format dates into human-readable strings, customize relative time ("3 days ago"), and create localized messages. Perfect for multilingual web and mobile applications.

License

Notifications You must be signed in to change notification settings

asmaelabid/date-formatter-i18n

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Date Formatter Localized i18n 📅

A lightweight and developer-friendly date formatting library with full i18n (internationalization) support. Easily format dates into human-readable strings, customize relative time ("3 days ago"), and create localized messages. Perfect for multilingual web and mobile applications. NPM Version License


💡 Why Choose date-formatter-i18n?

If you're looking for a lightweight, highly customizable, and i18n-ready date formatter, this package simplifies date handling for multilingual applications. It's designed with developers in mind, offering essential features without the bloat.


✨ Features

  • 📆 Date Formatting: Format dates into readable strings for different locales.
  • 🌍 Localization Support: Supports multiple languages (English, French, German, and more).
  • Relative Time: Display relative time like "3 days ago" or "in 5 minutes."
  • 🛠️ Custom Messages: Use dynamic templates for localization.

🚀 Installation

Install the package via NPM or Yarn:

npm install date-formatter-i18n
# or
yarn add date-formatter-i18n

📚 Usage

  • Import the Library
import DateFormatter from 'date-formatter-i18n';

// Create an instance of DateFormatter
const dateFormatter = new DateFormatter('en');
  • Format Dates
const formattedDate = dateFormatter.format('2023-12-25'); // Output: "December 25, 2023"
  • Format Relative Time
const threeDaysAgo = new Date(Date.now() - 3 * 24 * 60 * 60 * 1000);
console.log(dateFormatter.formatRelative(threeDaysAgo)); // Output: "3 days ago"

🌐 Supported Locales

  • English (Default)
  • French
  • German
  • Arabic

🛠️ API Reference

new DateFormatter(locale: string)
  • Creates a new DateFormatter instance.

  • locale: A string representing the language (e.g., en, fr, de, ar).

.format(date: string | Date, formatString: string)
  • Formats a date using the specified format string.

  • date: The date to format (ISO string or Date object).

  • formatString: Optional. A date-fns format string (default: PPP).

.formatRelative(date: string | Date, baseDate: string | Date)
  • Formats a date relative to another date.
  • date: The target date.
  • baseDate: Optional. The date to compare against (default: new Date()).

🏗️ Contributing

Contributions are welcome! Please follow these steps:

  • Fork the repository.
  • Create a new branch for your feature or bug fix.
  • Submit a pull request with your changes.

About

A lightweight and developer-friendly **date formatting library** with full **i18n (internationalization)** support. Easily format dates into human-readable strings, customize relative time ("3 days ago"), and create localized messages. Perfect for multilingual web and mobile applications.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published