Domanda Come ottengo la data corrente in JavaScript?


Come ottengo la data corrente in JavaScript?


1681
2017-10-07 11:39


origine


risposte:


Uso new Date() per generare un nuovo Date oggetto contenente la data e l'ora correnti.

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

if(dd<10) {
    dd = '0'+dd
} 

if(mm<10) {
    mm = '0'+mm
} 

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

Questo ti darà la data odierna nel formato mm / gg / aaaa.

Basta cambiare today = mm +'/'+ dd +'/'+ yyyy; a qualunque formato desideri.


2003
2018-02-08 04:42



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

Usa il replace opzione se hai intenzione di riutilizzare il utc variabile, come new Date(utc), come Firefox e Safari non riconoscono una data con trattini.


340
2017-09-29 14:13



AGGIORNATO!, Scorrere verso il basso

Se vuoi qualcosa di semplice e carino per l'utente finale ... Also, fixed a small suffix issue in the first version below. Now properly returns suffix.

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 AGGIORNAMENTO Dopo molto procrastinare, finalmente GitHubbed e aggiornato questo con la soluzione finale che ho usato per me stesso. Ha persino avuto alcune modifiche dell'ultimo minuto per renderlo più dolce! Se stai cercando il vecchio jsFiddle, per favore vedi questo.

Questo aggiornamento arriva 2 sapori, ancora relativamente piccoli, anche se non così piccoli come il mio sopra, risposta originale. Se vuoi estremamente piccolo, vai con quello.
 Nota anche: questo è ancora meno gonfio di moment.js. Mentre moment.js è bello, imo, ha molti metodi secolari, che richiedono un momento di apprendimento come se fosse una lingua. Il mio qui usa lo stesso formato comune di PHP: Data.

Link veloci

Sapore 1 new Date().format(String)   Il mio preferito personale Conosco il tabù, ma funziona alla grande sull'oggetto Date. Basta essere a conoscenza di qualsiasi altra mod che potresti avere per l'oggetto Date.

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

Sapore 2 dateFormat(Date, String)   Metodo all-in-one più tradizionale. Ha tutte le capacità del precedente, ma è chiamato tramite il metodo con Date param.

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

BONUS Flavor (richiede jQuery) $.date(Date, String)   Questo contiene molto più di un semplice format opzione. Estende l'oggetto Date di base e include metodi come addDays. Per ulteriori informazioni, consultare il Idiota.

In questa mod, i caratteri di formato sono ispirati da PHP: Data. Per una lista completa, per favore vedi il mio LEGGIMI

Questa mod ha anche una lista molto più lunga di formati pre-fatti. Per usare un formato premade, è sufficiente inserire il nome della chiave. dateFormat(new Date(), 'pretty-a');

  • 'composto'
    • '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'
    • 'soap' == 'Y-m-d \\ TH: i: s.u'
    • 'soap2' == 'Y-m-d \\ TH: i: s.uP'
    • 'unixTimestamp' == '@U'
    • 'xmlrpc' == 'Ymd \\ TG: i: s'
    • 'xmlrpcCompact' == 'Ymd \\ tGis'
    • 'wddx' == 'Y-n-j \\ TG: i: s'
  • 'costanti'
    • 'AMERICAN' == 'F j Y'
    • 'AMERICANSHORT' == 'm / d / Y'
    • 'AMERICANSHORTWTIME' == 'm / d / Y h: i: sA'
    • 'ATOM' == 'Y-m-d \\ TH: i: sP'
    • 'COOKIE' == 'l d-M-Y H: i: s T'
    • 'EUROPEAN' == 'j F Y'
    • 'EUROPEANSHORT' == 'd.m.Y'
    • 'EUROPEANSHORTWTIME' == 'd.m.Y H: i: s'
    • 'ISO8601' == 'Y-m-d \\ TH: i: sO'
    • 'LEGAL' == 'j F Y'
    • 'RFC822' == 'D d M y H: i: s O'
    • 'RFC850' == 'l d-M-y 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 \\ TH: i: sP'
    • 'RSS' == 'D d M Y H: i: s O'
    • 'W3C' == 'Y-m-d \\ TH: i: sP'
  • 'bella'
    • 'pretty-a' == 'g: i.sA l jS \\ o \\ f F Y'
    • 'pretty-b' == 'g: iA l jS \\ o \\ f F Y'
    • 'pretty-c' == 'n / d / Y g: iA'
    • 'pretty-d' == 'n / d / Y'
    • 'pretty-e' == 'F jS - g: ia'
    • 'pretty-f' == 'g: iA'

Come puoi notare, puoi usare il doppio \ per sfuggire a un personaggio.



187
2018-02-10 14:33



Se vuoi solo una data senza informazioni sull'ora, usa:

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

document.write(today);


115
2017-09-02 06:14



Prova questo:

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

Il risultato sarà simile

15/2/2012

90
2018-02-15 08:48



Il più breve possibile:

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

Ritorna "2016-03-10"


61
2018-03-10 16:30



Se stai cercando un controllo molto più granulare sui formati di data, consiglio vivamente di dare un'occhiata ai momenti. Libreria formidabile - e solo 5 KB. http://momentjs.com/


57
2017-12-12 01:03



Puoi usare 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>


45
2017-08-16 11:56



var d = (new Date()).toString().split(' ').splice(1,3).join(' ');

document.write(d)

Per scomporlo in passaggi:

  1. (new Date()).toString() dà "Fri 28 giu 2013 15:30:18 GMT-0700 (PDT)"

  2. (new Date()).toString().split(' ') divide la stringa sopra in ogni spazio e restituisce un array come segue: ["Fri", "Jun", "28", "2013", "15:31:14", "GMT-0700", "(PDT)" ]

  3. (new Date()).toString().split(' ').splice(1,3).join(' ') prende il secondo, il terzo e il quarto valore dall'array sopra, li unisce con spazi e restituisce una stringa "28 giu 2013"


41
2018-06-28 22:32



var date = new Date().toLocaleDateString("en-US");

Inoltre, puoi chiamare il metodo toLocaleDateString con due parametri:

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

Articolo su MSDN. Maggiori informazioni su questo metodo MDN.


36
2017-07-09 07:01