npm.io
10.4.0 • Published 6d ago

@leancodepl/api-date-dayjs

Licence
Apache-2.0
Version
10.4.0
Deps
3
Size
82 kB
Vulns
0
Weekly
191

@leancodepl/api-date-dayjs

Date conversion utilities using Day.js for API date types.

Installation

npm install @leancodepl/api-date-dayjs
# or
yarn add @leancodepl/api-date-dayjs

API

fromApiDate(date)

Converts ApiDateOnly to Day.js object.

Parameters:

  • date: ApiDateOnly - The API date string to convert

Returns: Day.js object

toApiDate(date)

Converts Day.js object to ApiDateOnly.

Parameters:

  • date: dayjs.Dayjs - The Day.js object to convert

Returns: ApiDateOnly string

fromApiTime(time)

Converts ApiTimeOnly to Day.js object.

Parameters:

  • time: ApiTimeOnly - The API time string to convert

Returns: Day.js object

toApiTime(time)

Converts Day.js object to ApiTimeOnly.

Parameters:

  • time: dayjs.Dayjs - The Day.js object to convert

Returns: ApiTimeOnly string

fromApiDateTimeOffset(datetime)

Converts ApiDateTimeOffset to Day.js object.

Parameters:

  • datetime: ApiDateTimeOffset - The API datetime with offset string to convert

Returns: Day.js object

toApiDateTimeOffset(time)

Converts Day.js object to ApiDateTimeOffset.

Parameters:

  • time: dayjs.Dayjs - The Day.js object to convert

Returns: ApiDateTimeOffset string

fromApiTimeSpan(timeSpan)

Converts ApiTimeSpan to Day.js duration.

Parameters:

  • timeSpan: ApiTimeSpan - The API timespan string to convert

Returns: Day.js duration object

toApiTimeSpan(duration)

Converts Day.js duration to ApiTimeSpan.

Parameters:

  • duration: duration.Duration - The Day.js duration object to convert

Returns: ApiTimeSpan string

dropLocalOffset(time)

Utility to remove local timezone offset from Day.js object.

Parameters:

  • time: dayjs.Dayjs - The Day.js object to process

Returns: Day.js object with UTC offset but keeping local time

Usage Examples

Date Conversion
import { fromApiDate, toApiDate } from "@leancodepl/api-date-dayjs"
import dayjs from "dayjs"

const apiDate = "2023-12-25"
const dayjsDate = fromApiDate(apiDate)
console.log(dayjsDate.format("YYYY-MM-DD")) // '2023-12-25'

const convertedBack = toApiDate(dayjsDate)
console.log(convertedBack) // '2023-12-25'
Time Conversion
import { fromApiTime, toApiTime } from "@leancodepl/api-date-dayjs"

const apiTime = "14:30:00"
const dayjsTime = fromApiTime(apiTime)
const convertedBack = toApiTime(dayjsTime)
console.log(convertedBack) // '14:30:00'
DateTime with Offset
import { fromApiDateTimeOffset, toApiDateTimeOffset } from "@leancodepl/api-date-dayjs"

const apiDateTime = "2023-12-25T14:30:00+01:00"
const dayjsDateTime = fromApiDateTimeOffset(apiDateTime)
const convertedBack = toApiDateTimeOffset(dayjsDateTime)
console.log(convertedBack) // '2023-12-25T14:30:00+01:00'
Timezone Handling
import { dropLocalOffset } from "@leancodepl/api-date-dayjs"
import dayjs from "dayjs"

const localDate = dayjs("2023-12-25T14:30:00")
const utcDate = dropLocalOffset(localDate)
console.log(utcDate.format()) // Date without local offset

Keywords