Próbuję przekazać oba ciągi dat do new Date(t)
.
Spodziewam się, że oba ciągi reprezentują ten sam czas, w końcu, jeśli pominę godzinę, czy nie powinna to być północ tego dnia?
Ale podczas gdy
new Date("2016-02-16 00:00")
zwraca 16.02.2016, o północy czasu lokalnego zgodnie z oczekiwaniami,
new Date("2016-02-16")
zwraca 2016-02-16, północ UTC, co jest błędne, a przynajmniej nie to, czego się spodziewałem, biorąc pod uwagę to, co inny ciąg analizuje jako.
Zrozumiałbym to, gdyby obaj zachowywali się tak samo, niezależnie od tego, czy zwracają czas jako czas lokalny, czy jako UTC, ale wydaje się bardzo niekonsekwentne, dlaczego zwracają różne takie rzeczy.
Aby obejść ten problem, za każdym razem, gdy napotkam datę, która nie ma odpowiedniego znacznika czasu, mogę dodać „00:00”, aby uzyskać spójne zachowanie, ale wydaje się, że jest to raczej delikatne.
Otrzymuję tę wartość z elementu INPUT typu „datetime-local”, więc wydaje się szczególnie niespójne, że muszę obejść wartość zwracaną przez element strony.
Czy robię coś źle, czy powinienem robić coś inaczej?
2016-02-16 00:00
- to wcale nie wygląda na aktualny czas. ecma-international.org/ecma-262/6.0/… , ale nawet po umieszczeniuT
tam rzeczywiście zachowuje się inaczej