Browse Source

Date fixes

pull/85/head
Sebastian Stehle 9 years ago
parent
commit
9447e9ce47
  1. 4
      src/Squidex/app/framework/utils/date-time.spec.ts
  2. 20
      src/Squidex/app/framework/utils/date-time.ts
  3. 4
      src/Squidex/app/shared/services/usages.service.ts

4
src/Squidex/app/framework/utils/date-time.spec.ts

@ -110,14 +110,14 @@ describe('DateTime', () => {
}); });
it('should calculate valid first of week', () => { it('should calculate valid first of week', () => {
const actual = DateTime.parseISO_UTC('2013-10-16T12:13:14.125').date.firstOfWeek(); const actual = DateTime.parseISO_UTC('2013-10-16T12:13:14.125').firstOfWeek();
const expected = DateTime.parseISO_UTC('2013-10-14T00:00:00'); const expected = DateTime.parseISO_UTC('2013-10-14T00:00:00');
expect(actual).toEqual(expected); expect(actual).toEqual(expected);
}); });
it('should calculate valid first of month', () => { it('should calculate valid first of month', () => {
const actual = DateTime.parseISO_UTC('2013-10-16T12:13:14.125').date.firstOfMonth(); const actual = DateTime.parseISO_UTC('2013-10-16T12:13:14.125').firstOfMonth();
const expected = DateTime.parseISO_UTC('2013-10-01'); const expected = DateTime.parseISO_UTC('2013-10-01');
expect(actual.toISOString()).toEqual(expected.toISOString()); expect(actual.toISOString()).toEqual(expected.toISOString());

20
src/Squidex/app/framework/utils/date-time.ts

@ -73,11 +73,11 @@ export class DateTime {
} }
public static tomorrow(): DateTime { public static tomorrow(): DateTime {
return DateTime.now().addDays(1).date; return DateTime.today().addDays(1);
} }
public static yesterday(): DateTime { public static yesterday(): DateTime {
return DateTime.now().addDays(-1).date; return DateTime.today().addDays(-1);
} }
public static parseMSDate(value: string): DateTime { public static parseMSDate(value: string): DateTime {
@ -118,7 +118,7 @@ export class DateTime {
const parsedMoment = moment.utc(value, format); const parsedMoment = moment.utc(value, format);
if (parsedMoment.isValid()) { if (parsedMoment.isValid()) {
return new DateTime(new Date(parsedMoment.valueOf())); return new DateTime(parsedMoment.toDate());
} else { } else {
throw `${value} is not a valid date time string`; throw `${value} is not a valid date time string`;
} }
@ -153,9 +153,9 @@ export class DateTime {
} }
public firstOfWeek(): DateTime { public firstOfWeek(): DateTime {
const weekStart = new Date(this.value.valueOf() - (this.weekDay - 1) * 86400000); const date = this.date;
return new DateTime(weekStart); return date.addDays(-date.value.getUTCDay() + 1);
} }
public firstOfMonth(): DateTime { public firstOfMonth(): DateTime {
@ -167,7 +167,7 @@ export class DateTime {
public addYears(value: number): DateTime { public addYears(value: number): DateTime {
const clone = this.cloneDate(); const clone = this.cloneDate();
clone.setFullYear(clone.getUTCFullYear() + value, clone.getUTCMonth(), clone.getUTCDay()); clone.setUTCFullYear(clone.getUTCFullYear() + value, clone.getUTCMonth(), clone.getUTCDay());
return new DateTime(clone); return new DateTime(clone);
} }
@ -175,7 +175,7 @@ export class DateTime {
public addMonths(value: number): DateTime { public addMonths(value: number): DateTime {
const clone = this.cloneDate(); const clone = this.cloneDate();
clone.setMonth(clone.getUTCMonth() + value, clone.getUTCDate()); clone.setUTCMonth(clone.getUTCMonth() + value, clone.getUTCDate());
return new DateTime(clone); return new DateTime(clone);
} }
@ -183,7 +183,7 @@ export class DateTime {
public addDays(value: number): DateTime { public addDays(value: number): DateTime {
const clone = this.cloneDate(); const clone = this.cloneDate();
clone.setDate(clone.getUTCDate() + value); clone.setUTCDate(clone.getUTCDate() + value);
return new DateTime(clone); return new DateTime(clone);
} }
@ -228,6 +228,10 @@ export class DateTime {
return moment(this.value).format(format); return moment(this.value).format(format);
} }
public toUTCStringFormat(format: string): string {
return moment.utc(this.value).format(format);
}
public toFromNow(): string { public toFromNow(): string {
return moment.utc(this.value).fromNow(); return moment.utc(this.value).fromNow();
} }

4
src/Squidex/app/shared/services/usages.service.ts

@ -80,7 +80,7 @@ export class UsagesService {
} }
public getCallsUsages(app: string, fromDate: DateTime, toDate: DateTime): Observable<CallsUsageDto[]> { public getCallsUsages(app: string, fromDate: DateTime, toDate: DateTime): Observable<CallsUsageDto[]> {
const url = this.apiUrl.buildUrl(`api/apps/${app}/usages/calls/${fromDate.toStringFormat('YYYY-MM-DD')}/${toDate.toStringFormat('YYYY-MM-DD')}`); const url = this.apiUrl.buildUrl(`api/apps/${app}/usages/calls/${fromDate.toUTCStringFormat('YYYY-MM-DD')}/${toDate.toUTCStringFormat('YYYY-MM-DD')}`);
return HTTP.getVersioned(this.http, url) return HTTP.getVersioned(this.http, url)
.map(response => { .map(response => {
@ -97,7 +97,7 @@ export class UsagesService {
} }
public getStorageUsages(app: string, fromDate: DateTime, toDate: DateTime): Observable<StorageUsageDto[]> { public getStorageUsages(app: string, fromDate: DateTime, toDate: DateTime): Observable<StorageUsageDto[]> {
const url = this.apiUrl.buildUrl(`api/apps/${app}/usages/storage/${fromDate.toStringFormat('YYYY-MM-DD')}/${toDate.toStringFormat('YYYY-MM-DD')}`); const url = this.apiUrl.buildUrl(`api/apps/${app}/usages/storage/${fromDate.toUTCStringFormat('YYYY-MM-DD')}/${toDate.toUTCStringFormat('YYYY-MM-DD')}`);
return HTTP.getVersioned(this.http, url) return HTTP.getVersioned(this.http, url)
.map(response => { .map(response => {

Loading…
Cancel
Save