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}}