Chcę przekonwertować datę na znacznik czasu, moje dane wejściowe to 26-02-2012
. użyłem
new Date(myDate).getTime();
Jest napisane NaN .. Czy ktoś może powiedzieć, jak to przekonwertować?
javascript
date
time
selladurai
źródło
źródło
Date(myDate).getTime()
(tego, co oznaczyłeś jako kod), czy też słowo „nowy” przed nim ma być częścią kodu? Im więcej wysiłku włożysz, tym lepsze będą odpowiedzi.Odpowiedzi:
Aktualizacja:
DEMO (testowane w Chrome, FF, Opera, IE i Safari).
źródło
NaN
. W Safari musisz użyć innego możliwego konstruktoranew Date(year, month, day);
, w odniesieniu do tego przykładu:new Date(myDate[2], myDate[1], myDate[0]);
YYYY-MM-DD
), który jest zrozumiałyDate()
i jest, ogólnie mówiąc, najbardziej interoperacyjnym formatem ciągów dat.new Date(newDate).getTime()
wygeneruje znacznik czasu w rozdzielczości milisekund.Math.floor(new Date(newDate).getTime() / 1000)
Wypróbuj tę funkcję, używa metody Date.parse () i nie wymaga żadnej niestandardowej logiki:
źródło
źródło
ten refaktoryzowany kod to zrobi
działa to we wszystkich nowoczesnych przeglądarkach z wyjątkiem IE8-
źródło
Są tu dwa problemy. Po pierwsze, możesz wywołać getTime tylko dla wystąpienia daty. Musisz zawinąć nową datę w nawiasy lub przypisać ją do zmiennej.
Po drugie, musisz przekazać mu ciąg znaków w odpowiednim formacie.
Przykład pracy:
źródło
Wystarczy odwrócić cyfrę daty i zmienić za
-
pomocą,
:W Twoim przypadku:
Lokalizacja PS UK nie ma tutaj znaczenia.
źródło
Number
na ciągach zaczynających się od a0
jest problematyczne w niektórych silnikach - użyjparseInt
i określ podstawę.źródło
Aby przekonwertować datę (ISO) na znacznik czasu systemu Unix , otrzymałem znacznik czasu o 3 znaki dłuższy niż potrzeba, więc mój rok wynosił około 50 000 ...
Musiałem to podzielić przez 1000:
new Date('2012-02-26').getTime() / 1000
źródło
Dla tych, którzy chcą mieć czytelny znacznik czasu w formacie,
yyyymmddHHMMSS
Przykład użycia: rozszerzenie pliku kopii zapasowej.
/my/path/my.file.js.20190220
źródło
O ile przyszedłeś tutaj w poszukiwaniu aktualnej sygnatury czasowej
TLDR:
źródło
Twój ciąg nie jest w formacie, który
Date
ma obsługiwać obiekt . Będziesz musiał sam go przeanalizować, użyć biblioteki do analizowania dat, takiej jak MomentJS lub starszej (i nie jest obecnie obsługiwana, o ile wiem) DateJS , lub wmasować ją w odpowiedni format (np.2012-02-29
) Przed poproszeniemDate
o przeanalizowanie .Dlaczego otrzymujesz
NaN
: Kiedy pytasznew Date(...)
o obsłużenie nieprawidłowego ciągu, zwracaDate
obiekt, dla którego ustawiono nieprawidłową datę (new Date("29-02-2012").toString()
zwraca"Invalid date"
). WywołaniegetTime()
obiektu daty w tym stanie zwracaNaN
.źródło
Date
obiektu (co nie ma nic wspólnego z DOM).źródło
Odpowiedzi udzielili inni programiści, ale na swój własny sposób możesz to zrobić w locie bez tworzenia żadnej funkcji zdefiniowanej przez użytkownika w następujący sposób:
źródło