Czy mogę przekonwertować datę ISO na milisekundy? na przykład chcę przekonwertować to iso
2012-02-10T13:19:11+0000
do milisekund.
Ponieważ chcę porównać aktualną datę z datą utworzenia. Data utworzenia to data ISO.
javascript
iso
isodate
Robin Carlo Catacutan
źródło
źródło
1328796537
, ale w fb api data jest pokazywana w iso2012-02-10T13:18:45+0000
date1.getTime() - date2.getTime()
- to wszystko, czego potrzebujeszOdpowiedzi:
Spróbuj tego
var date = new Date("11/21/1987 16:00:00"); // some mock date var milliseconds = date.getTime(); // This will return you the number of milliseconds // elapsed from January 1, 1970 // if your date is less than that date, the value will be negative console.log(milliseconds);
EDYTOWAĆ
Podałeś datę ISO. Akceptuje ją również konstruktor
Date
obiektuvar myDate = new Date("2012-02-10T13:19:11+0000"); var result = myDate.getTime(); console.log(result);
Edytować
Najlepsze, co znalazłem, to ręczne pozbycie się przesunięcia.
var myDate = new Date("2012-02-10T13:19:11+0000"); var offset = myDate.getTimezoneOffset() * 60 * 1000; var withOffset = myDate.getTime(); var withoutOffset = withOffset - offset; console.log(withOffset); console.log(withoutOffset);
Wydaje się działać. Jeśli chodzi o problemy z konwersją ciągu ISO na
Date
obiekt, możesz odwołać się do podanych linków.EDYTOWAĆ
Naprawiono błąd z nieprawidłową konwersją na milisekundy, zgodnie z komentarzem Prasad19sara.
źródło
var myDate = new Date("2012-02-10T13:19:11+0000");
Skrótem poprzednich rozwiązań jest
var myDate = +new Date("2012-02-10T13:19:11+0000");
Dokonuje konwersji typu w locie i bezpośrednio wyświetla datę w formacie milisekund.
Innym sposobem jest również użycie metody parsowania Date util, która podaje tylko czas EPOCH w milisekundach.
var myDate = Date.parse("2012-02-10T13:19:11+0000");
źródło
+new Date()
zwraca,1447857230137
który jest czasem w milisekundach.const dateMillis = Number(new Date('2017-09-26T20:24:18.801Z'))
alenew Date('2017-09-26T20:24:18.801Z').getTime()
lubnew Date('2017-09-26T20:24:18.801Z').valueOf()
jest nawet bardziej czytelny.Inną opcją od 2017 roku jest użycie
Date.parse()
. Dokumentacja MDN wskazuje jednak, że jest zawodna przed ES5.var date = new Date(); // today's date and time in ISO format var myDate = Date.parse(date);
Zobacz skrzypce po więcej szczegółów.
źródło
Innym możliwym rozwiązaniem jest porównać z aktualną datę
January 1, 1970
, można uzyskaćJanuary 1, 1970
przeznew Date(0)
;var date = new Date(); var myDate= date - new Date(0);
źródło
Tak, możesz to zrobić w jednej linii
let ms = Date.parse('2019-05-15 07:11:10.673Z'); console.log(ms);//1557904270673
źródło
Innym rozwiązaniem może być użycie parsera obiektów Number w następujący sposób:
let result = Number(new Date("2012-02-10T13:19:11+0000")); let resultWithGetTime = (new Date("2012-02-10T13:19:11+0000")).getTime(); console.log(result); console.log(resultWithGetTime);
To jest konwertowane na milisekundy, tak jak
getTime()
w przypadkuDate
obiektuźródło
var date = new Date() console.log(" Date in MS last three digit = "+ date.getMilliseconds()) console.log(" MS = "+ Date.now())
Korzystając z tego, możemy uzyskać datę w milisekundach
źródło
var date = new Date (date_string); var milliseconds = date.getTime ();
To zadziałało dla mnie!
źródło
jeśli chcesz przekonwertować datę UTC na milisekundy
składnia: Date.UTC (rok, miesiąc,? dzień,? godziny,? min,? sek,? milisek);
np .:
date_in_mili = Date.UTC(2020, 07, 03, 03, 40, 40, 40);
console.log('miliseconds', date_in_mili);
źródło
W przypadku, gdy ktoś chce pobrać tylko czas z daty ISO, pomocne będzie poniższe. Szukałem tego i nie mogłem znaleźć odpowiedniego pytania. Więc jeśli ktoś zobaczy, będzie pomocny.
let isoDate = '2020-09-28T15:27:15+05:30'; let result = isoDate.match(/\d\d:\d\d/); console.log(result[0]);
Dane wyjściowe będą jedynym czasem z isoDate, czyli
15:27
źródło