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)">