UNPKG

date-vir

Version:

Easy and explicit dates and times.

92 lines (91 loc) 2.71 kB
import { type Timezone, type UtcTimezone } from '../timezone/timezones.js'; import { type DateLike } from './date-like.js'; import { type FullDate } from './full-date-shape.js'; /** * Parses the given {@link DateLike} and converts it into a {@link FullDate} instance with the user's * current timezone. * * @category FullDate * @example * * ```ts * import {createFullDateInUserTimezone} from 'date-vir'; * * createFullDateInUserTimezone('June 1, 2024'); * createFullDateInUserTimezone(new Date()); * createFullDateInUserTimezone(112300120); * ``` */ export declare function createFullDateInUserTimezone(dateLike: Readonly<DateLike>): FullDate; /** * Parses the given {@link DateLike} and converts it into a {@link FullDate} instance with the UTC * timezone. * * @category FullDate * @example * * ```ts * import {createUtcFullDate} from 'date-vir'; * * createUtcFullDate('June 1, 2024'); * createUtcFullDate(new Date()); * createUtcFullDate(112300120); * ``` */ export declare function createUtcFullDate(dateLike: Readonly<DateLike>): FullDate<UtcTimezone>; /** * Parses the given {@link DateLike} and converts it into a {@link FullDate} instance with the given * timezone. * * @category FullDate * @example * * ```ts * import {createFullDate, timezones, utcTimezone} from 'date-vir'; * * createFullDate('June 1, 2024', utcTimezone); * createFullDate(new Date(), timezones['Australia/Brisbane']); * createFullDate(112300120, timezones['Etc/GMT-11']); * ``` */ export declare function createFullDate<const SpecificTimezone extends Timezone>( /** The original date representation to be converted into a FullDate. */ dateLike: Readonly<DateLike>, /** The timezone that this date/time is meant for / originated from. */ timezone: SpecificTimezone): FullDate<SpecificTimezone>; /** * Converts a {@link FullDate} instance into a new instance with the original's date and time * represented in the new timezone. * * @category Conversion * @example * * ```ts * import {toNewTimezone} from 'date-vir'; * * const exampleDate: FullDate = { * year: 2024, * month: 1, * day: 5, * hour: 1, * minute: 1, * second: 1, * millisecond: 1, * timezone: 'UTC', * }; * * let result = toNewTimezone(exampleDate, timezones['Australia/Brisbane']); * // output: * result = { * year: 2024, * month: 1, * day: 5, * hour: 11, * minute: 1, * second: 1, * millisecond: 1, * timezone: timezones['Australia/Brisbane'], * }; * ``` */ export declare function toNewTimezone<const SpecificTimezone extends Timezone>(fullDate: Readonly<FullDate>, timezone: SpecificTimezone): FullDate<SpecificTimezone>;