diff --git a/src/Squidex/app/features/schemas/pages/schemas/schemas-page.component.html b/src/Squidex/app/features/schemas/pages/schemas/schemas-page.component.html index 6937a336c..e3de6a862 100644 --- a/src/Squidex/app/features/schemas/pages/schemas/schemas-page.component.html +++ b/src/Squidex/app/features/schemas/pages/schemas/schemas-page.component.html @@ -37,7 +37,7 @@
- {{schema.lastModified.toLocal() | fromNow}} + {{schema.lastModified | fromNow}}
diff --git a/src/Squidex/app/framework/utils/date-time.spec.ts b/src/Squidex/app/framework/utils/date-time.spec.ts index c79345186..d9ba55797 100644 --- a/src/Squidex/app/framework/utils/date-time.spec.ts +++ b/src/Squidex/app/framework/utils/date-time.spec.ts @@ -82,31 +82,24 @@ describe('DateTime', () => { }); it('should print to formatted string', () => { - const value = DateTime.parseISO_UTC('2013-10-16T12:13:14'); - const actual = value.toStringFormat('hh:mm'); + const value = DateTime.parseISO('2013-10-16T12:13:14'); const expected = '12:13'; - expect(actual).toEqual(expected); + expect(value.toStringFormat('HH:mm')).toEqual(expected); }); it('should print to iso string', () => { const value = DateTime.parseISO_UTC('2013-10-16T12:13:14'); - const actual = value.toString().substr(0, 19); - const expected = '2013-10-16T12:13:14'; + const expected = '2013-10-16T12:13:14.000Z'; - expect(actual).toEqual(expected); + expect(value.toISOString()).toEqual(expected); }); it('should print to from now string', () => { const value = DateTime.now().addMinutes(-4); + const expected = '4 minutes ago'; - expect(value.toFromNow()).toBe('4 minutes ago'); - }); - - it('should print to valid utc string', () => { - const value = DateTime.parseISO_UTC('2013-10-16T12:13:14'); - - expect(value.toUTCString()).toBeDefined(); + expect(value.toFromNow()).toBe(expected); }); it('should print from format with underscore', () => { @@ -127,7 +120,7 @@ describe('DateTime', () => { const actual = DateTime.parseISO_UTC('2013-10-16T12:13:14.125').date.firstOfMonth(); const expected = DateTime.parseISO_UTC('2013-10-01'); - expect(actual).toEqual(expected); + expect(actual.toISOString()).toEqual(expected.toISOString()); }); it('should add various offsets to date time', () => { diff --git a/src/Squidex/app/framework/utils/date-time.ts b/src/Squidex/app/framework/utils/date-time.ts index 8fc266420..ad7758189 100644 --- a/src/Squidex/app/framework/utils/date-time.ts +++ b/src/Squidex/app/framework/utils/date-time.ts @@ -51,7 +51,7 @@ export class DateTime { public get date(): DateTime { const clone = this.cloneDate(); - clone.setHours(0, 0, 0, 0); + clone.setUTCHours(0, 0, 0, 0); return new DateTime(clone); } @@ -119,7 +119,7 @@ export class DateTime { const parsedMoment = moment.utc(value, format); if (parsedMoment.isValid()) { - return new DateTime(new Date(parsedMoment.valueOf() - parsedMoment.local().utcOffset() * 60 * 1000)); + return new DateTime(new Date(parsedMoment.valueOf())); } else { throw `${value} is not a valid date time string`; } @@ -160,7 +160,7 @@ export class DateTime { } public firstOfMonth(): DateTime { - const monthStart = new Date(this.year, this.month - 1, 1); + const monthStart = new Date(Date.UTC(this.year, this.month - 1, 1)); return new DateTime(monthStart); } @@ -168,7 +168,7 @@ export class DateTime { public addYears(value: number): DateTime { const clone = this.cloneDate(); - clone.setFullYear(clone.getFullYear() + value, clone.getMonth(), clone.getDay()); + clone.setFullYear(clone.getUTCFullYear() + value, clone.getUTCMonth(), clone.getUTCDay()); return new DateTime(clone); } @@ -176,7 +176,7 @@ export class DateTime { public addMonths(value: number): DateTime { const clone = this.cloneDate(); - clone.setMonth(clone.getMonth() + value, clone.getDate()); + clone.setMonth(clone.getUTCMonth() + value, clone.getUTCDate()); return new DateTime(clone); } @@ -184,7 +184,7 @@ export class DateTime { public addDays(value: number): DateTime { const clone = this.cloneDate(); - clone.setDate(clone.getDate() + value); + clone.setDate(clone.getUTCDate() + value); return new DateTime(clone); } @@ -221,12 +221,8 @@ export class DateTime { return new DateTime(clone); } - public toUTCString(): string { - return this.value.toUTCString(); - } - - public toString(): string { - return moment(this.value).format(); + public toISOString(): string { + return moment(this.value).toISOString(); } public toStringFormat(format: string): string { @@ -234,6 +230,6 @@ export class DateTime { } public toFromNow(): string { - return moment(this.value).fromNow(); + return moment.utc(this.value).fromNow(); } } \ No newline at end of file diff --git a/src/Squidex/app/shared/components/history.component.html b/src/Squidex/app/shared/components/history.component.html index a62889799..232b81bb9 100644 --- a/src/Squidex/app/shared/components/history.component.html +++ b/src/Squidex/app/shared/components/history.component.html @@ -19,7 +19,7 @@
{{actorName(event.actor) | async}}
-
{{event.created.toLocal() | fromNow}}
+
{{event.created | fromNow}}