Jeśli reprezentujesz datę kalendarza, nie ma czasu ani strefy czasowej. Krótka prezentacja ma więcej sensu.
Niestety, nowa data (ciąg znaków) w wielu implementacjach javascript może zrobić dla ciebie bad things.
new Date('2015-09-23')
Tue Sep 22 2015 20:00:00 GMT-0400 (Eastern Daylight Time)
Najprostszym sposobem na wyjście z tego problemu jest, aby nie używać javascript data - ten typ pasuje z datetimeoffset w innych językach. Jest to zły sposób na reprezentowanie wartości daty kalendarza.
Ale i tak prawdopodobnie użyjesz daty javascript. Następną najprostszą "poprawką" jest unikanie standardowych reprezentacji (ponieważ standardowe reprezentacje są interpretowane jako DateTimeOffset z UTC). Oto dwie możliwości:
Użyj "/" zamiast "-".
new Date('2015/09/23')
Wed Sep 23 2015 00:00:00 GMT-0400 (Eastern Daylight Time)
Użyj 3-cyfrowego miesiąca - początkowe zera zostaną odrzucone.
new Date('2015-009-23')
Wed Sep 23 2015 00:00:00 GMT-0400 (Eastern Daylight Time)
Jeśli masz javascript po stronie klienta i serwera, gotowe. Jeśli masz coś jeszcze po stronie serwera, powinieneś rozważyć, co zrobi język serwera, jeśli zobaczy, że przychodzą niestandardowe formaty dat.
Brzmi sensownie dla mnie. –
Mam również ten problem. Utwórz tabelę użytkowników z kolumną urodzin, typem daty. Powinien więc mieć tylko datę (bez czasu). Uzyskaj czas, gdy zapytanie z węzłem-postgres. – Kiddo