Cum pot obține data curentă în JavaScript?

Cum pot obține data curentă în JavaScript?

Comentarii la întrebare (9)
Soluția

Utilizați noua Data()` pentru a genera un nou "Data" obiect care conține data și ora curentă.

var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();

today = mm + '/' + dd + '/' + yyyy;
document.write(today);

Acest lucru vă va oferi azi's date în formatul mm/dd/yyyy.

Pur și simplu schimba azi = mm +'/'+ dd +'/'+ aaaa;` de la orice format doriti.

Comentarii (13)
var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);

Utilizați "înlocuiți" opțiune dacă're de gând să reutilizați utc variabile, cum ar fi noua Data(utc)`, ca Firefox și Opera don't recunoaște o data cu liniuțe.

Comentarii (16)

ACTUALIZAT!, Derulați În Jos

Daca vrei ceva destul de simplu pentru end-user ... , de Asemenea, fixat un mic sufixul problemă în prima versiune de mai jos. Acum revine în mod corespunzător sufix.

var objToday = new Date(),
    weekday = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'),
    dayOfWeek = weekday[objToday.getDay()],
    domEnder = function() { var a = objToday; if (/1/.test(parseInt((a + "").charAt(0)))) return "th"; a = parseInt((a + "").charAt(1)); return 1 == a ? "st" : 2 == a ? "nd" : 3 == a ? "rd" : "th" }(),
    dayOfMonth = today + ( objToday.getDate() < 10) ? '0' + objToday.getDate() + domEnder : objToday.getDate() + domEnder,
    months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
    curMonth = months[objToday.getMonth()],
    curYear = objToday.getFullYear(),
    curHour = objToday.getHours() > 12 ? objToday.getHours() - 12 : (objToday.getHours() < 10 ? "0" + objToday.getHours() : objToday.getHours()),
    curMinute = objToday.getMinutes() < 10 ? "0" + objToday.getMinutes() : objToday.getMinutes(),
    curSeconds = objToday.getSeconds() < 10 ? "0" + objToday.getSeconds() : objToday.getSeconds(),
    curMeridiem = objToday.getHours() > 12 ? "PM" : "AM";
var today = curHour + ":" + curMinute + "." + curSeconds + curMeridiem + " " + dayOfWeek + " " + dayOfMonth + " of " + curMonth + ", " + curYear;

document.getElementsByTagName('h1')[0].textContent = today;
<h1></h1>

UBBER ACTUALIZARE După mult amânare, am'am în cele din urmă GitHubbed și actualizate cu soluția finală I'am fost folosind-o pentru mine. L's chiar mai avut ceva modificări pentru a face mai dulce! Daca're în căutarea pentru cele vechi [jsFiddle, vă rugăm să consultați acest][2].

Această actualizare vine în 2 arome, încă relativ mic, deși nu la fel de mici ca mai sus, răspuns inițial. Dacă doriți extrem de mic, du-te cu asta.
de Asemenea, Rețineți: Acest lucru este încă mai puțin umflată decât moment.js. În timp ce moment.js este frumos, imo, nu are prea multe secular metode, care necesită învățare moment ca și cum ar fi o limba. Al meu aici folosește același format comun ca PHP: data.

Link-Uri Rapide

Aroma 1 [new Date().format(String)][3] My Fav Personal. Știu tabu, dar mare de lucrări pe Obiect date. Doar să fie conștienți de orice alte mods poate avea la Data de Obiect.

//  use as simple as
new Date().format('m-d-Y h:i:s');   //  07-06-2016 06:38:34

Aroma 2 [dateFormat(Data, String)][4] Mai tradiționale all-in-o singură metodă. Are capacitatea de precedent, dar este numit prin metoda cu Data param.

//  use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s');  //  07-06-2016 06:38:34

BONUS Aroma (necesită jQuery) $.data(Data, String) Acesta conține mult mai mult decât doar un simplu "format" opțiune. Se extinde de la Data de bază obiectul și include metode, cum ar fi addDays. Pentru mai multe informații, vă rugăm să consultați Git.

În acest mod, formatul personajele sunt inspirate de PHP: data. Pentru o listă completă, vă rugăm să-mi văd README

Acest mod are, de asemenea, o mult mai mult lista de pre-formate. Pentru a utiliza un premade format, pur și simplu introduceți cheia nume. dateFormat(new Date(), &#39;destul-o&#39;);

  • 'compus'
  • 'commonLogFormat' == 'd/M/Y:G:i:s'
  • 'exif' == 'Y:m:d G:i:s'
  • 'isoYearWeek' == 'Y\\WW'
  • 'isoYearWeek2' == 'Y-\\WW'
  • 'isoYearWeekDay' == 'Y\\WWj'
  • 'isoYearWeekDay2' == 'Y-\\WW-j'
  • 'mySQL' == 'Y-m-d h:i:s'
  • 'postgreSQL' == 'Y. z'
  • 'postgreSQL2' == 'Yz'
  • 'săpun' == 'Y-m-d\\LEA:i:s.u'
  • 'soap2' == 'Y-m-d\\LEA:i:s.sus'
  • 'unixTimestamp' == '@U'
  • 'xmlrpc' == 'Ymd\\TG:i:s'
  • 'xmlrpcCompact' == 'Ymd\\aplicația'
  • 'wddx' == 'Y-n-j\\TG:i:s'
  • 'constantele'
  • 'AMERICAN' == 'F j Y'
  • 'AMERICANSHORT' == 'm/d/Y'
  • 'AMERICANSHORTWTIME' == 'm/d/Y h:i:sA'
  • 'ATOM' == 'Y-m-d\\LEA:i:sP'
  • 'COOKIE' == 'eu d-H:i:s T'
  • 'EUROPEAN' == 'j F Y'
  • 'EUROPEANSHORT' == 'd.m.Y'
  • 'EUROPEANSHORTWTIME' == 'd.m.Y H:i:s'
  • 'ISO8601' == 'Y-m-d\\LEA:eu:deci,'
  • 'JURIDICE' == 'j F Y'
  • 'RFC822' == 'D d M y H:i:s O'
  • 'RFC850' == 'eu d-H:i:s T'
  • 'RFC1036' == 'D d M y H:i:s O'
  • 'RFC1123' == 'D d M Y H:i:s O'
  • 'RFC2822' == 'D d M Y H:i:s O'
  • 'RFC3339' == 'Y-m-d\\LEA:i:sP'
  • 'RSS' == 'D d M Y H:i:s O'
  • 'W3C' == 'Y-m-d\\LEA:i:sP'
  • 'destul de'
  • 'destul-o' == 'g:i.sA eu jS \\o\\f F Y'
  • 'destul-b' == 'g:iA l jS \\o\\f F Y'
  • 'destul-c' == 'n/d/Y, g:iA'
  • 'destul-d' == 'n/d/Y'
  • 'destul-e' == 'F jS - g:ia'
  • 'destul-f' == 'g:iA'

Cum se poate observa, puteți utiliza dublu \ pentru a scăpa de un caracter.


Comentarii (6)

Cel mai scurt posibil.

Pentru a obține format ca "2018-08-03":

let today = new Date().toISOString().slice(0, 10)

console.log(today)

Pentru a obține format ca "8/3/2018":

let today = new Date().toLocaleDateString()

console.log(today)

De asemenea, puteți trece localizare ca argument, de exemplu toLocaleDateString("sr"), etc.

Comentarii (2)

Dacă doriți doar o data fara timp de info, utilizați:

var today = new Date();
    today.setHours(0, 0, 0, 0);

document.write(today);
Comentarii (4)

Încercați acest lucru:

var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("" + day + "/" + month + "/" + year + "")

Rezultatul va fi o astfel

15/2/2012
Comentarii (1)

Daca're în căutarea pentru o mulțime mai mult control granular asupra formate de dată, am recomanda verificarea momentjs. Teribil de bibliotecă - și numai 5KB. http://momentjs.com/

Comentarii (5)

Puteți utiliza moment.js: http://momentjs.com/

var m = moment().format("DD/MM/YYYY");

document.write(m);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
Comentarii (6)
var d = (new Date()).toString().split(' ').splice(1,3).join(' ');

document.write(d)

Să-l rupe în jos, în pași:

  1. (new Date()).toString() dă "Fri Jun 28 2013 15:30:18 GMT-ORA 07: 00 (PDT)"

  2. (new Date()).toString().split(&#39; &#39;) împarte de mai sus șir pe fiecare spațiu și returnează o matrice, după cum urmează: ["Fri", "Iunie", "28", "2013", "15:31:14", "GMT-0700", "(PDT)"]

  3. (new Date()).toString().split(&#39; &#39;).splice(1,3).alăturați-vă(&#39; &#39;) ia a doua, a treia și a patra valorile de mai sus matrice, le unește cu spații, și returnează un șir de caractere "Jun 28 2013"

Comentarii (4)

Asta functioneaza de fiecare data:

    var now = new Date();
    var day = ("0" + now.getDate()).slice(-2);
    var month = ("0" + (now.getMonth() + 1)).slice(-2);
    var today = now.getFullYear() + "-" + (month) + "-" + (day);

    console.log(today);
Comentarii (3)
var date = new Date().toLocaleDateString("en-US");

De asemenea, puteți apela metoda `toLocaleDateString cu doi parametri:

var date = new Date().toLocaleDateString("en-US", {
    "year": "numeric",
    "month": "numeric"
});

Articolul pe MSDN. Mai multe despre aceasta metoda pe MDN.

Comentarii (2)

Mai curat, mai simplă versiune:

new Date().toLocaleString();

Rezultatul variază în funcție de utilizator's localizare:

2/27/2017, 9:15:41 AM

Comentarii (1)

Dacă sunteți mulțumit cu AAAA-LL-ZZ format, acest lucru va face treaba la fel de bine.

new Date().toISOString().split(&#39;T&#39;)[0]

2018-03-10

Comentarii (1)

Puteți utiliza Date.js biblioteca care produsulu Data de obiect, astfel puteți avea .astăzi() metodă.

Comentarii (1)

Puteți obține data curentă apela metoda statică acum astfel:

var now = Date.now()

referință:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now

Comentarii (1)

Varun's a răspunde nu ține cont de TimezoneOffset. Aici este o versiune care are:

var d = new Date()
new Date(d.getTime() - d.getTimezoneOffset() * 60000).toJSON().slice(0, 10) // 2015-08-11

Anii TimezoneOffset e minute, in timp ce constructorul are nevoie de milisecunde, astfel multiplicarea prin 60000.

Comentarii (0)

Cel mai Scurt Răspuns este: new Date().toJSON().felie(0,10)

Comentarii (2)

Ca toISOString() va reveni numai UTC curente de timp , nu ora locală. Trebuie să facem o data prin utilizarea '.toString()' funcție pentru a obține data în yyyy-MM-dd format ca

document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('T')[0]);

Pentru a obține data și ora în în yyyy-MM-ddTHH:mm:ss format

document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0]);

Pentru a obține data și ora în în yyyy-MM-dd HH:mm:ss format

document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0].replace('T',' '));
Comentarii (0)
new Date().toDateString();

Rezultatul:

"Wed Feb 03 2016"

Comentarii (0)

Dacă doriți un simplu DD/MM/YYYY format, m-am'am venit cu această soluție simplă, deși nu't prefix lipsește zerouri.

var d = new Date();
document.write( [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/') );
Comentarii (0)