devsite/node_modules/liquidjs/dist/util/timezone-date.d.ts
2024-07-07 18:49:38 -07:00

45 lines
1.7 KiB
TypeScript

import { LiquidDate } from './liquid-date';
/**
* A date implementation with timezone info, just like Ruby date
*
* Implementation:
* - create a Date offset by it's timezone difference, avoiding overriding a bunch of methods
* - rewrite getTimezoneOffset() to trick strftime
*/
export declare class TimezoneDate implements LiquidDate {
private timezoneOffset;
private timezoneName;
private date;
private displayDate;
constructor(init: string | number | Date | TimezoneDate, timezone: number | string);
getTime(): number;
getMilliseconds(): number;
getSeconds(): number;
getMinutes(): number;
getHours(): number;
getDay(): number;
getDate(): number;
getMonth(): number;
getFullYear(): number;
toLocaleString(locale?: string, init?: any): string;
toLocaleTimeString(locale?: string): string;
toLocaleDateString(locale?: string): string;
getTimezoneOffset(): number;
getTimezoneName(): string;
/**
* Create a Date object fixed to it's declared Timezone. Both
* - 2021-08-06T02:29:00.000Z and
* - 2021-08-06T02:29:00.000+08:00
* will always be displayed as
* - 2021-08-06 02:29:00
* regardless timezoneOffset in JavaScript realm
*
* The implementation hack:
* Instead of calling `.getMonth()`/`.getUTCMonth()` respect to `preserveTimezones`,
* we create a different Date to trick strftime, it's both simpler and more performant.
* Given that a template is expected to be parsed fewer times than rendered.
*/
static createDateFixedToTimezone(dateString: string): LiquidDate;
private static getTimezoneOffset;
}