Jak převést řetězec na datum v JavaScriptu, s příklady

Zde je několik snadno srozumitelných metod pro převod řetězců na datové objekty v programovacím jazyce JavaScript.

Chcete porovnat data v JavaScriptu? Jak na to se dozvíte zde.

Obtížný způsob – použití Vanilla JavaScript

JavaScript obsahuje vestavěné funkce pro analýzu data z řetězce – je však značně omezený. Takže tady je v akci:

var myString = '01 Jan 1970 00:00:00 GMT';

var myDate = new Date(Date.parse(myString));

Co se tady děje? Je definován řetězec obsahující datum. Nové Datum objekt je pak definován pomocí výsledku funkce Date.parse, která vezme řetězec data a převede jej na čas Unix.

Je to trochu nepraktické a co je nejhorší, funguje to pouze tehdy, když řetězec data odpovídá konkrétnímu formátu.

Více informací o této metodě a podporovaných formátech data lze nalézt v dokumentaci pro vývojáře Mozilly, ale existuje lepší způsob.

Chytrý způsob – pomocí Moment.js

Moment.js je dokonalým nástrojem pro práci s daty a časy v JavaScriptu. Dokáže převádět a analyzovat data z řetězců, posouvat časová pásma, počítat časové rozdíly, sčítat a odečítat časy – dělá vše, co byste s časy a daty potřebovali, a snadno se používá. Získejte to na:

https://momentjs.com/

Moment.js je důkladně zdokumentován – nic z toho zde nebudu znovu vykládat. Je dobře napsaná, snadno srozumitelná a neustále aktualizovaná díky nejnovějším funkcím balíčku:

https://momentjs.com/docs/

Poskytnu rychlý příklad analýzy data z řetězce, protože to je důvod, proč jsme zde – ale kompletní dokumentace obsahuje úplný seznam dostupných nástrojů pro analýzu dat:

https://momentjs.com/docs/#/parsing/

Příklad

Nejprve budete muset do kódu HTML zahrnout soubor Moment.js

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

Nyní je Moment.js připraven k použití – zde je JavaScript pro převod řetězce na datum:

var myString = '12/11/2021';

moment(myString, 'DD/MM/YYYY');

Je to tak snadné – jednoduše zavolejte moment() a předejte řetězec a formát, ve kterém je vaše datum, a o zbytek se postará.