KategorieProgramowanieWeb Developer

[JavaScript] Jak zmienić ciąg znaków reprezentujący datę w formacie “dd-mm-yyyy” na obiekt Date ?

Ideałem była by sytuacja gdyby data była zapisywana zawsze w jednym formacie, jednak często mamy do czynienia z różnymi formatami i jesteśmy zmuszeni do konwersji danego ciągu znaków na obiekt daty. Jako że zapis daty w formacie “dd-mm-yyyy” nie jest tym co możemy bezkarnie przekazać podczas tworzenia obiektu Date, pokażę kilka sposobów na stworzenie obiektu z daty zapisanej w takim formacie.

Sposób 1

Standardowo zaczniemy od rozbicia daty na tablicę, z której będziemy mogli pobrać osobno rok, miesiąc, dzień

var arrData = $("#datepicker").val().split("-");

Do obiektu Date przekazujemy parametry:

new Date(year, month, day)

Należy także pamiętać że miesiące numeruje się od zera w związku z czym konieczne będzie odjęcie od miesiąca wartości 1.

Nasz wynikowy kod będzie prezentował się następująco:

var arrData = $("#datepicker").val().split("-");
var data = new Date(arrData[2], arrData[1] - 1, arrData[0]);

Jakie metody mamy dostępne w obiekcie daty możecie dowiedzieć się na stronie w3schools, zaś działające demo kodu możecie zobaczyć tutaj.

Sposób 2

Tym razem wykorzystamy wyrażenia regularne do konwersji daty do postaci “yyyy-mm-dd”, czyli formatu akceptowalnego przez obiekt Date.

//pobranie daty z pola inpput
var strDate = $("#datepicker").val();

//wyrażenie regularne rozbijające datę
var regEx = /(\d{2})-(\d{2})-(\d{4})/

//utworzenie obiektu
var data = new Date(strDate.replace(regEx, "$3-$2-$1"));

Jak wcześniej działające demo możecie zobaczyć tutaj

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *