npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

nepali-datetime

v1.2.1

Published

A Node project designed to support native JavaScript-like features for Nepali dates. It includes features such as 'NepaliDate' for Nepali date support and 'dateConverter' for date conversions.

Downloads

679

Readme

nepali-datetime

npm version Github CI Downloads codecov License

nepali-datetime is a Node.js package designed to provide native JavaScript-like features for Nepali dates. It includes the 'NepaliDate' class for Nepali date support and the 'dateConverter' module for date conversion.

Examples

Here are a few examples to get you started:

import NepaliDate from 'nepali-datetime'

// Create a NepaliDate object for the current date and time
const now = new NepaliDate()
console.log(now.toString()) // Outputs: "2080-03-23 15:32:03.643"

// Create a NepaliDate object from a Nepali date string
const date1 = new NepaliDate('2079-02-15 23:11')
console.log(date1.toString()) // Outputs: "2079-02-15 23:11:00"

// Parse Nepali date string
const date2 = new NepaliDate('Baisakh 18, 2080', 'MMMM D, YYYY')
console.log(date1.toString()) // Outputs: "2080-01-18 00:00:00"

// Format a NepaliDate object
const formattedDate = now.format('YYYY-MM-DD')
console.log(formattedDate) // Outputs: "2080-03-23"

// Create a NepaliDate object from an English date
const date3 = NepaliDate.fromEnglishDate(2023, 6, 8)
console.log(englishDate.toString()) // Outputs: "2080-03-23 00:00:00"

Installation

To install nepali-datetime, you can use npm or yarn:

npm install nepali-datetime

or

yarn add nepali-datetime

Usage

NepaliDate

The NepaliDate class represents a Nepali calendar date. It provides various methods and properties to work with Nepali dates.

Creating a NepaliDate object

You can create a NepaliDate object in several ways:

  • Without any parameters: Creates a NepaliDate object for the current date and time.

    import NepaliDate from 'nepali-datetime'
    
    const now = new NepaliDate()
  • Using a Nepali date string: Parses the string as a Nepali calendar date.

    const date1 = new NepaliDate('2079-02-15')
    const date2 = new NepaliDate('2079-02-15 14:00')
  • Using a Unix timestamp (in milliseconds):

    const date2 = new NepaliDate(1654210800000)
  • Using a JavaScript Date object: Converts the JavaScript Date object to a NepaliDate object.

    const jsDate = new Date()
    const date3 = new NepaliDate(jsDate)
  • Using an existing NepaliDate object: Creates a new NepaliDate object with the same values.

    const date4 = new NepaliDate(date3)
  • Using Nepali calendar date and time parameters: Specifies the components of a Nepali calendar date.

    const date5 = new NepaliDate(year, month, date, hour, minute, second, ms)
    const date6 = new NepaliDate(2079, 2, 15, 10, 30)

Getting the Nepali date components

You can retrieve various components of a NepaliDate object using the following methods:

  • getDateObject(): Retrieves the Javascript Date object equivalent to the NepaliDate.
  • getTime(): Retrieves the Unix timestamp (in milliseconds) of the Nepali date.
  • getYear(): Retrieves the year of the Nepali date in the Nepali calendar.
  • getEnglishYear(): Retrieves the year of the Nepali date in the English calendar.
  • getMonth(): Retrieves the month of the Nepali date in the Nepali calendar.
  • getEnglishMonth(): Retrieves the month of the Nepali date in the English calendar.
  • getDate(): Retrieves the day of the month of the Nepali date in the Nepali calendar.
  • getEnglishDate(): Retrieves the day of the month of the Nepali date in the English calendar.
  • getDay(): Retrieves the day of the week represented by a numeric value.
  • getHours(): Retrieves the hour value of the Nepali date.
  • getMinutes(): Retrieves the minute value of the Nepali date.
  • getSeconds(): Retrieves the second value of the Nepali date.
  • getMilliseconds(): Retrieves the millisecond value of the Nepali date.

Setting the Nepali date components

You can set individual components of a NepaliDate object using the following methods:

  • setYear(year): Sets the year of the Nepali date.
  • setMonth(month): Sets the month of the Nepali date.
  • setDate(day): Sets the day of the month of the Nepali date.
  • setHours(hour): Sets the hour of the Nepali date.
  • setMinutes(minute): Sets the minute of the Nepali date.
  • setSeconds(second): Sets the second of the Nepali date.
  • setMilliseconds(ms): Sets the millisecond of the Nepali date.
  • setTime(time): Sets the Nepali date and time values using a Unix timestamp.

Formatting the Nepali date

You can format a NepaliDate object as a string using the format() and formatNepali() methods.

  • format(formatStr): Returns a string representation (in English) of the NepaliDate object in the specified format.
  • formatNepali(formatStr): Returns a string representation in the Nepali (Devanagari) script of the NepaliDate object in the specified format.
const now = new NepaliDate(2079, 5, 3, 16, 14)
console.log(now.format('YYYY-MM-DD hh:mm A')) // Outputs: 2079-06-03 04:14 PM

The date formatting will follow the format codes mentioned below, which are similar to the date formats used in day.js.

| Format Token | Description | Example | | ------------ | --------------------------------- | -------- | | YYYY | 4-digit year | 2023 | | YY | 2-digit year | 23 | | MMMM | Full month name | Baisakh | | MMM | Abbreviated month name | Bai | | MM | 2-digit month | 01-12 | | M | Month number, beginning at 1 | 1-12 | | DD | 2-digit day of the month | 01-31 | | D | Day of the month | 1-31 | | dddd | Full day of the week | Monday | | ddd | Abbreviated day of the week | Mon | | d | Day of the week, with Sunday as 0 | 0-6 | | HH | 2-digit hour (24-hour format) | 00-23 | | H | Hour (24-hour format) | 0-23 | | hh | 2-digit hour (12-hour format) | 01-12 | | h | Hour (12-hour format) | 1-12 | | mm | 2-digit minutes | 00-59 | | m | Minutes | 0-59 | | ss | 2-digit seconds | 00-59 | | s | Seconds | 0-59 | | SSS | 3-digit milliseconds | 000-999 | | A | Uppercase AM/PM | AM or PM | | a | Lowercase am/pm | am or pm |

Any other character will be printed as it is. If you need to print the special characters (YMDmd), please enclose them within square brackets. Example: .format("[YMDmd]")

For the list of month names and their abbreviations, you can refer to the table below.

| Value of Month | Abbreviation | Full Name | | -------------- | ------------ | --------- | | 0 | Bai | Baisakh | | 1 | Jes | Jestha | | 2 | Asa | Asar | | 3 | Shr | Shrawan | | 4 | Bhd | Bhadra | | 5 | Asw | Aswin | | 6 | Kar | Kartik | | 7 | Man | Mangsir | | 8 | Pou | Poush | | 9 | Mag | Magh | | 10 | Fal | Falgun | | 11 | Cha | Chaitra |

Converting to JavaScript Date object

You can get the equivalent JavaScript Date object of a NepaliDate object using the getDateObject() method.

const now = new NepaliDate(2079, 5, 3)
console.log(now.getDateObject()) // Date 2022-09-18T18:15:00.000Z

Creating a NepaliDate object from an English date

You can create a NepaliDate object from an English calendar date using the fromEnglishDate method.

const date = NepaliDate.fromEnglishDate(2023, 6, 8)
console.log(date.toString()) // Outputs: "2080-03-23 00:00:00"

dateConverter

The dateConverter module provides functions for converting dates between the Nepali and English calendars.

  • englishToNepali(year, month, day): Converts an English calendar date to a Nepali calendar date. Returns an array [yearNp, monthNp, dayNp] representing the Nepali date.
  • nepaliToEnglish(year, month, day): Converts a Nepali calendar date to an English calendar date. Returns an array [yearEn, monthEn, dayEn] representing the English date.
import dateConverter from 'nepali-datetime/dateConverter'

// english to nepali date conversion
const [npYear, npMonth, npDay] = dateConverter.englishToNepali(2023, 5, 27)

// nepali to english date conversion
const [enYear, enMonth, enDay] = dateConverter.nepaliToEnglish(2080, 2, 15)

Acknowledgements

This project was inspired by nepali-date. We would like to express our gratitude to their team for their excellent work and ideas, which served as a motivation for this project.

Contribution

We appreciate feedback and contribution to this package. To get started please see our contribution guide.