UNPKG

1.52 kBTypeScriptView Raw
1import { LiquidDate } from './liquid-date';
2/**
3 * A date implementation with timezone info, just like Ruby date
4 *
5 * Implementation:
6 * - create a Date offset by it's timezone difference, avoiding overriding a bunch of methods
7 * - rewrite getTimezoneOffset() to trick strftime
8 */
9export declare class TimezoneDate implements LiquidDate {
10 private timezoneOffset;
11 private date;
12 constructor(init: string | number | Date | TimezoneDate, timezoneOffset: number);
13 getTime(): number;
14 getMilliseconds(): number;
15 getSeconds(): number;
16 getMinutes(): number;
17 getHours(): number;
18 getDay(): number;
19 getDate(): number;
20 getMonth(): number;
21 getFullYear(): number;
22 toLocaleTimeString(locale?: string): string;
23 toLocaleDateString(locale?: string): string;
24 getTimezoneOffset(): number;
25 /**
26 * Create a Date object fixed to it's declared Timezone. Both
27 * - 2021-08-06T02:29:00.000Z and
28 * - 2021-08-06T02:29:00.000+08:00
29 * will always be displayed as
30 * - 2021-08-06 02:29:00
31 * regardless timezoneOffset in JavaScript realm
32 *
33 * The implementation hack:
34 * Instead of calling `.getMonth()`/`.getUTCMonth()` respect to `preserveTimezones`,
35 * we create a different Date to trick strftime, it's both simpler and more performant.
36 * Given that a template is expected to be parsed fewer times than rendered.
37 */
38 static createDateFixedToTimezone(dateString: string): LiquidDate;
39}