Chcę przekonwertować datę na sygnaturę czasową, moje wejście to 26-02-2012
. Mówi NaN .. Czy ktoś może powiedzieć, jak to konwertować?przekonwertować datę na znacznik czasu w javascript?
Odpowiedz
var myDate="26-02-2012";
myDate=myDate.split("-");
var newDate=myDate[1]+","+myDate[0]+","+myDate[2];
alert(new Date(newDate).getTime()); //will alert 1330192800000
Aktualizacja:
var myDate="26-02-2012";
myDate=myDate.split("-");
var newDate=myDate[1]+"/"+myDate[0]+"/"+myDate[2];
alert(new Date(newDate).getTime()); //will alert 1330210800000
DEMO (Testowane na Chrome, FF, Opera, IE i Safari).
Niestety, nie działa to w Safari5, ponieważ zwraca 'NaN'. W Safari musisz użyć innego możliwego konstruktora 'nowa data (rok, miesiąc, dzień); w odniesieniu do tego przykładu:' nowa data (myDate [2], myDate [1], myDate [0]); ' – insertusernamehere
Sprawdź aktualizacja. –
Zamiast konwertować ciąg daty z formatu "europejskiego" na "amerykański", lepiej jest przekonwertować ten format na format ISO 8601 ("RRRR-MM-DD"), co gwarantuje, że jest zrozumiałe przez "Date()", oraz jest, ogólnie biorąc, najbardziej interoperacyjnym formatem ciągów daty. –
Twój ciąg nie jest w formacie, który jest obiektem Date
specified to handle. Musisz przetworzyć to samemu, użyj biblioteki parsującej daty, takiej jak MomentJS lub starszej (i nie jest w tej chwili utrzymywanej, o ile mogę to stwierdzić) DateJS, lub wymaż ją w odpowiednim formacie (np. 2012-02-29
), zanim zaprosisz Date
do przeanalizuj to.
Dlaczego jesteś coraz NaN
: Kiedy pytasz new Date(...)
obsługiwać nieprawidłowy ciąg, zwraca Date
przedmiot, który jest ustawiony na nieprawidłowej daty (new Date("29-02-2012").toString()
powraca "Invalid date"
). Wywołanie getTime()
obiektu daty w tym stanie zwraca NaN
.
Kolejny dla UTC: http://arshaw.com/xdate/ – benvds
@benvds: Cool, thanks. Chociaż znajduję komentarz * "Co więcej, jest nieszkodliwy dla DOM" * trochę dziwny ... Spodziewam się, że chodziło o to, że nie zmienia on obiektu 'Date' (który nie ma nic wspólnego z DOM). –
Trzeba tylko, aby odwrócić swoją datę cyfrę i zmienić -
z ,
:
new Date(2012,01,26).getTime(); // 02 becomes 01 because getMonth() method returns the month (from 0 to 11)
W twoim przypadku:
var myDate="26-02-2012";
myDate=myDate.split("-");
new Date(parseInt(myDate[2], 10), parseInt(myDate[1], 10) - 1 , parseInt(myDate[0]), 10).getTime();
PS: Lokalizacja w Wielkiej Brytanii nie ma tutaj znaczenia.
Ten format daty jest również nieprawidłowy i nie będzie działać niezawodnie w różnych przeglądarkach i w różnych lokalizacjach (nie jest to na przykład dla mnie w Chrome z ustawieniami regionalnymi w Wielkiej Brytanii). Jeśli masz zamiar zaproponować format, zasugeruj taki, który jest rzeczywiście udokumentowany. –
Otrzymuję przykład z https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date. Po prostu zapomniałem odłożyć sznur. Teraz działa. – antonjs
OK, przynajmniej teraz powyższy kod nie używa nieprawidłowego formatu daty - podaje tylko złą datę z dwóch osobnych powodów. Powyżej zdefiniowałeś datę 2 marca 2014 r. (Masz zablokowane zamówienie w terenie). A jeśli pola były we właściwej kolejności, definiowałbyś datę ** Marzec ** 26th, 2012 (wartości miesięcy zaczynają się od zera). Ale ponieważ OP ma ciąg, a nie serię liczb, nie jest to aż tak użyteczne, nawet jeśli rozwiązałeś te problemy. –
var dtstr = "26-02-2012";
new Date(dtstr.split("-").reverse().join("-")).getTime();
function getTimeStamp() {
var now = new Date();
return ((now.getMonth() + 1) + '/' + (now.getDate()) + '/' + now.getFullYear() + " " + now.getHours() + ':'
+ ((now.getMinutes() < 10) ? ("0" + now.getMinutes()) : (now.getMinutes())) + ':' + ((now.getSeconds() < 10) ? ("0" + now
.getSeconds()) : (now.getSeconds())));
}
długa, ale świetnie działająca odpowiedź –
Spróbuj tej funkcji, wykorzystuje metodę Date.parse() i nie wymaga żadnej niestandardowej logiki:
function toTimestamp(strDate){
var datum = Date.parse(strDate);
return datum/1000;
}
alert(toTimestamp('02/13/2009 23:31:30'));
To zdecydowanie najlepsza odpowiedź, dziękuję! – gyo
/**
* Date to timestamp
* @param string template
* @param string date
* @return string
* @example datetotime("d-m-Y", "26-02-2012") return 1330207200000
*/
function datetotime(template, date){
date = date.split(template[1]);
template = template.split(template[1]);
date = date[ template.indexOf('m') ]
+ "/" + date[ template.indexOf('d') ]
+ "/" + date[ template.indexOf('Y') ];
return (new Date(date).getTime());
}
Dobra robota, @Evgeniy! Dzięki za udostępnienie! – Ricalsin
ten kod refactored zrobi
let toTimestamp = strDate => Date.parse(strDate)
działa to we wszystkich nowoczesnych przeglądarkach z wyjątkiem ie8 -
To jest prawdziwa odpowiedź. Reszta to żart. – Moss
- 1. Jak przekonwertować datę ciągu na znacznik czasu w języku Java?
- 2. Jak przekonwertować aktualną datę na znacznik czasu epoki?
- 3. jak przekonwertować ciąg znaków na uniksowy znacznik czasu w javascript?
- 4. Jak przekonwertować znacznik czasu DB2 na datetime?
- 5. Jak przekonwertować znacznik czasu unixa na czas czytelny dla człowieka?
- 6. Jak przekonwertować datę gregoriańską (w sekundach) na znacznik czasu unixowego w PHP
- 7. Konwertuj znacznik czasu na aktualną datę w Androidzie
- 8. Jak przekonwertować datę, aby uniksowy znacznik czasu w skrypcie powłoki na MacOS
- 9. Jak przekonwertować znacznik czasu UTC na datę i godzinę systemową w ABAP
- 10. Konwertuj znacznik czasu Json na normalną datę i czas w javascript
- 11. Jak przekonwertować ciąg datetime na znacznik czasu UNIX w SQLite3?
- 12. Jak przekonwertować 13-cyfrowy Uniksowy znacznik czasu na datę i godzinę?
- 13. Konwertuj na znacznik czasu UTC
- 14. Jak przekonwertować uniksowy znacznik czasu na obiekt Swift NSDate?
- 15. Konwertuj datę epoki na znaczącą datę JavaScript
- 16. Jak przekonwertować numer tygodnia na datę w JavaScript
- 17. Jak przekonwertować datę perską na datę gregoriańską?
- 18. Jak uzyskać znacznik czasu w ClojureScript?
- 19. JavaScript znacznik czasu do Python datetime konwersji
- 20. Konwersja Joda LocalDateTime na uniksowy znacznik czasu
- 21. MySQL uzyskać datę n dni temu jako znacznik czasu
- 22. Jak przekonwertować DateTime na datę
- 23. Konwertuj ciąg znaków SQL na znacznik czasu
- 24. Przekaż datetime/znacznik czasu z PHP na JavaScript przez echo
- 25. Konwersja uniksowy znacznik czasu do obiektu Date javascript
- 26. Konwersja daty/czasu w GMT na EST w JavaScript
- 27. Jak przekonwertować ciąg na datę w sybase
- 28. Jak przekonwertować datę na liczbę całkowitą?
- 29. Konwersja czasu epoki na "prawdziwą" datę/czas
- 30. Jak przekonwertować datę w formacie "YYYY-MM-DD hh: mm: ss" na UNIX timestamp
możliwy duplikat http://stackoverflow.com/questions/9343971/timestamp-conversion-javascript –
możesz zajrzeć do biblioteki date.js: http://www.datejs.com/ – rsbarro
Czy używałeś 'Date (myDate) .getTime()' (co zaznaczyłeś jako kod), czy też słowo "new" przed oznaczeniem było częścią kodu? Im więcej wysiłku włożysz, tym lepsze uzyskasz odpowiedzi. –