Angular5 - lokalizacja daty

0

Mam w swoim komponencie dwie daty startDate i invoiceDate. Na początku ustawiam je jak poniżej jako pierwszy dzień trzy miesiące do tyłu i pierwszy dzień obecnego miesiąca z godzinami 0000 i ma to symbolizować datę od kiedy fakturuję oraz datę faktury. Problem w tym, że Angular przesuwa czas o strefę czasową, a w pewnych datach uwzględnia jeszcze czas letni i zimowy:
Sun Oct 01 2017 0000 GMT+0200 (Środkowoeuropejski czas letni)
Mon Jan 01 2018 0000 GMT+0100 (Środkowoeuropejski czas stand.)
Dobre praktyki mówią, żeby wszędzie stosować UTC, żeby się nie pogubić. Gdzie zatem powinno się robić konwersję, żeby nie wrobić się w problemy? Konwertować ten czas w API na etapie generowania faktury?

startDate: Date;
invoiceDate: Date;

var date = new Date();
this.startDate = new Date(date.getFullYear(), date.getMonth() - 3, 1);
this.invoiceDate = new Date(date.getFullYear(), date.getMonth(), 1);

<input type="date" class="form-control date-input wide inupt-bold" [ngModel]="startDate | date:'yyyy-MM-dd'" (ngModelChange)="startDateChanged($event)">
0

Do API wysyłasz UTC i odbierasz też UTC.
Cała konwersja powinna następować we frontendzie.

0

Ok. Frontend akurat prezentuje wszystko poprawnie. Generowanie faktur u mnie robione jest w backendzie i tam musiałem zrobić:

generateInvoiceDto.InvoiceDate.ToLocalTime()

żeby było dobrze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1