Browse Source

DateTiem fixes

pull/1/head
Sebastian 9 years ago
parent
commit
c80e3a32ae
  1. 2
      src/Squidex/app/features/schemas/pages/schemas/schemas-page.component.html
  2. 21
      src/Squidex/app/framework/utils/date-time.spec.ts
  3. 22
      src/Squidex/app/framework/utils/date-time.ts
  4. 2
      src/Squidex/app/shared/components/history.component.html

2
src/Squidex/app/features/schemas/pages/schemas/schemas-page.component.html

@ -37,7 +37,7 @@
</span>
</div>
<div class="col-xs-4 schema-col-right">
<span class="schema-modified">{{schema.lastModified.toLocal() | fromNow}}</span>
<span class="schema-modified">{{schema.lastModified | fromNow}}</span>
</div>
</div>
</div>

21
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', () => {

22
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();
}
}

2
src/Squidex/app/shared/components/history.component.html

@ -19,7 +19,7 @@
<div class="event-message">
<span class="event-actor user-ref">{{actorName(event.actor) | async}}</span> <span [innerHTML]="format(event.message) | async"></span>
</div>
<div class="event-created">{{event.created.toLocal() | fromNow}}</div>
<div class="event-created">{{event.created | fromNow}}</div>
</div>
</div>
</div>

Loading…
Cancel
Save