@gez/date-time-kit
Version:
A JavaScript library for handling date and time operations efficiently.
144 lines (132 loc) • 3.75 kB
TypeScript
export * as dateEnum from './src/enum';
export declare function open(kitOpiton: kitOption): Promise<kitResult>;
export declare function getLimitKeyByTimetamp(startTimestamp: timeString, endTimestamp: timeString, timeZone?: number | undefined): kitDataLimit | null;
export declare function getTimestampByLimitKey(limit: kitDataLimit, timeZone?: number | undefined): kitTimestampResult;
export declare function getTimeStringByTimestamp(timestamp: number): timeString;
export declare function getTimeStringByTimeZone(timeString: timeString, timeZone: number, currentTimeZone?: number): timeString;
export default {
open,
getLimitKeyByTimetamp,
getTimestampByLimitKey,
getTimeStringByTimestamp,
getTimeStringByTimeZone
}
export interface kitTimestampResult {
startTime: timeString,
endTime: timeString,
startTimeStamp: number,
endTimeStamp: number
}
export interface kitContent {
startDate: kitDate,
endDate: kitDate,
startTime: kitTime,
endTime: kitTime,
startDateShow: kitDate,
endDateShow: kitDate,
moveDate: kitDate,
maxDate: kitDate,
minDate: kitDate,
maxTime: kitTime,
minTime: kitTime,
lang: Lang,
timeZone: number,
enableZone: boolean,
granularity: dateEnum.Granularity,
}
export interface kitDate {
year: number,
month: number,
date: number
}
export interface kitTime {
hour: number,
minute: number,
second: number,
millisecond: number
}
export interface kitDataLimitContent {
startDate: kitDate,
startTime: kitTime,
endDate: kitDate,
endTime: kitTime
}
export interface kitComponentOption {
ele: HTMLElement,
component: kitComponent
}
export interface kitComponent {
updateData(ele: HTMLElement, data: kitContent): void
create(data: kitContent): HTMLElement
}
export type status = 'start' | 'end';
export type timeString = `${number}-${number}-${number}T${number}:${number}:${number}.${number}`;
export type Lang = 'zhCN' | 'enUS';
export interface kitOption {
root: HTMLElement,
// default select
startTime?: timeString,
endTime?: timeString,
// default limit
maxTime?: timeString,
minTime?: timeString,
// default lang
lang?: Lang,
// default time zone
timeZone?: number,
granularity?: dateEnum.Granularity,
enableZone?: boolean | undefined
}
export interface kitResult {
startTime: timeString,
endTime: timeString,
// time stamp
startTimeStamp: number,
endTimeStamp: number,
quick: kitDataLimit | null,
timeZone: number
}
export type kitI18n = {
[key in Lang]: {
box: {
confirm: string,
cancel: string
},
quick: {
all: string,
today: string,
yesterday: string,
week: string,
lastWeek: string,
last7Days: string,
month: string,
last30Days: string,
last180Days: string,
last6Month: string,
year: string,
timezone: string,
recommend: string,
timezoneList: string,
},
date: {
sun: string,
mon: string,
tue: string,
wed: string,
thu: string,
fri: string,
sat: string,
},
time: {
startTime: string,
endTime: string,
startMillisecond: string,
endMillisecond: string,
}
}
}
export interface kitDateTime {
date: kitDate,
time: kitTime
}
export type kitDataLimit = 'all' | 'today' | 'yesterday' | 'week' | 'lastWeek' | 'last7Days' | 'month' | 'last30Days' | 'last180Days' | 'last6Month' | 'year';