Mai mult
Se String în format AAAALLZZ de la JS data de obiect?
Am'm încercarea de a utiliza JS pentru a transforma o data obiect într-un șir de caractere în "AAAALLZZ" format. Există o cale mai ușoară decât concatenarea Data.getYear()
, Data.getMonth ()", și " Data.getDay()
?
363
43
Modificat bucată de cod eu folosesc de multe ori:
Am't, cum ar fi adăugarea la prototip. O alternativă ar fi:
Puteți utiliza `toISOString funcția :
Acesta vă va oferi un "aaaa-ll-zz" format.
Moment.js ar putea fi prietenul tău
Dacă tu nu't nevoie de o pură JS soluție, puteți folosi jQuery UI pentru a face treaba de genul asta :
Eu de obicei nu't ca a importa prea mult biblioteci. Dar jQuery UI este atât de utilă, vă va folosi, probabil, în altă parte în proiectul dumneavoastră.
Vizita http://api.jqueryui.com/datepicker/ pentru mai multe exemple
Acest lucru este de o singură linie de cod pe care le puteți folosi pentru a crea un
YYYY-MM-DD
șir de azi's date.În plus față de o-o's răspuns eu'd dori sa recomandati separarea logică a operațiunilor de returnare și le-a pus ca ternare în variabile în loc.
De asemenea, folosesc concat (), pentru a asigura în condiții de siguranță concatenare de variabile
Un pic mai USCAT vioara cum a sugerat de către RiZKiT
https://jsfiddle.net/EricHerlitz/tuhhfxz9/
Eu nu't, cum ar fi modificarea obiectele native, și cred că de multiplicare este mai clară decât șirul de umplutură soluția acceptată.
Vioara: http://jsfiddle.net/gbdarren/Ew7Y4/
Simplu JS (ES5) soluție fără nici o posibilă întâlnire sari probleme cauzate de Data.toISOString() imprimare în UTC:
Asta ca răspuns la @weberste's comentariu pe @Pierre Guilbert's a răspunde.
console.log(dateFormated);
Un alt mod este de a utiliza
toLocaleDateString
cu o localizare care are o big-endian data format standard, cum ar fi Suedia, Lituania, Ungaria, Coreea de Sud, ...:Pentru a elimina delimitatori (
-
) este doar o chestiune de înlocuire non-cifre:Acest lucru are potențialul de eroare, puteți obține cu UTC formate de dată: UTC dată poate fi o zi liberă în raport cu data în fusul orar local.
Puteți utiliza pur și simplu, Aceasta linie de cod pentru a obține data in an
Acest cod este fix pentru Pierre Guilbert's răspuns:
(funcționează chiar și după 10000 de ani)
Puțin versiune simplificată pentru cel mai popular raspuns in acest thread https://stackoverflow.com/a/3067896/5437379 :
Acest tip de aici => http://blog.stevenlevithan.com/archives/date-time-format a scris un format()` funcția de Javascript's "Data" de obiect, astfel încât acesta poate fi utilizat cu familiar literal formate.
Dacă aveți nevoie de caracteristici complete formatarea datelor în aplicația's, Javascript, - l folosească. În caz contrar, dacă ceea ce vrei sa faci este un one-off, atunci concatenarea getYear(), getMonth(), getDay() este probabil cel mai simplu.
Se pare că mootools oferă
Data().format()
: https://mootools.net/more/docs/1.6.0/Types/DateAm'm nu sunt sigur dacă merită inclusiv doar pentru această sarcină, deși.
De lucru de la @o-o's a răspunde la această va da înapoi șirul de la data în conformitate cu un șir format. Puteți adăuga cu ușurință un 2 cifre din an regex pentru anul & milisecunde și astfel dacă aveți nevoie de ele.
Eu nu't știu cât de eficient, care este, totuși, mai ales perf înțelept pentru că folosește o mulțime de regex. S-ar putea folosi, probabil, un lucru nu-master pur js.
Eu de obicei folosesc codul de mai jos atunci când am nevoie pentru a face acest lucru.
Pentru a explica, .felie(-2) ne dă ultimele două caractere din șir.
Deci, indiferent de ce, putem adăuga "0" pentru o zi sau o lună, și doar cere pentru ultimele două, deoarece acestea sunt întotdeauna cele două vrem.
Deci, dacă MyDate.getMonth() întoarce 9, va fi:
deci adăugarea .felie(-2) pe care ne dă ultimele două caractere care este:
Dar dacă data.getMonth() returnează 10, acesta va fi:
deci adăugarea .felie(-2) ne dă ultimele două caractere, sau: