Comment puis-je obtenir la date actuelle en JavaScript?

Comment puis-je obtenir la date actuelle en JavaScript?

1753
demandé sur FullStackDeveloper 2009-10-07 15:39:02

30 réponses

utiliser new Date() pour générer un nouvel objet Date contenant la date et l'heure courante.

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);

vous obtiendrez la date d'aujourd'hui dans le format mm/JJ/AAAA.

il suffit de changer today = mm +'/'+ dd +'/'+ yyyy; à n'importe quel format que vous souhaitez.

2095
répondu Samuel Meddows 2017-06-21 09:24:10

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

utilisez l'option replace si vous voulez réutiliser la variable utc , comme new Date(utc) , car Firefox et Safari ne reconnaissent pas une date avec des tirets.

350
répondu Varun Natraaj 2016-12-27 18:47:20

mise à JOUR! , Faites Défiler Vers Le Bas

si vous voulez quelque chose de simple joli à l'utilisateur final ... 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 UPDATE après beaucoup de procrastination, j'ai finalement GitHubbed et mis à jour avec la solution finale que j'ai utilisé pour moi-même. Il avait même quelques dernières minutes de modifications pour le rendre plus doux! Si vous êtes à la recherche de l'ancien jsFiddle, s'il vous plaît voir ce .

Cette mise à jour arrive 2 saveurs, encore relativement faible, mais pas aussi petit que mon ci-dessus, l'original de la réplique. Si vous voulez extrêmement petits, aller avec qui.

également Note: encore moins gonflée que le moment.js. Tout moment.js est agréable, imo, il a à de nombreuses méthodes laïques, qui exigent un moment d'apprentissage comme si c'était une langue. Mine ici utilise le même format commun que PHP:date .

Liens Rapides

saveur 1 new Date().format(String) Mon Fav. Je connais le tabou, mais ça marche bien sur L'objet rencard. Il suffit d'être conscient de tout autre mods que vous pouvez avoir à L'objet Date.

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

saveur 2 dateFormat(Date, String) Méthode plus traditionnelle tout-en-un. A toute la capacité du précédent, mais est appelé par méthode avec Date param.

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

saveur BONUS (nécessite jQuery) $.date(Date, String) Cela contient bien plus qu'une simple option format . Il étend l'objet Date de base et inclut des méthodes telles que addDays . Pour plus d'informations, veuillez consulter le Git .

dans ce mod, le format les caractères sont inspirés de PHP: date . Pour une liste complète, s'il vous plaît voir mon README

ce mod a aussi une liste beaucoup plus longue de formats pré-fabriqués. Pour utiliser un format premade, entrez simplement son nom de clé. dateFormat(new Date(), 'pretty-a');

  • 'composé'
    • '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'
  • constantes
    • '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 '
    • "European short" = = " D. M. Y '
    • "European SHORTWTIME" = = " 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 M Y H: i: s O '
    • 'W3C' = = 'Y-m-d\TH: i: sP'
  • "joli"
    • 'pretty-a' = = 'g:i.sA 1519520920"
    • 'pretty-b' = = 'g: iA l jS \o\\f f Y'
    • 'pretty-c' = = 'n/d / Y g: iA'
    • 'à-peu-près d' == 'n/d/Y'
    • 'pretty-e' = = 'F jS-g: ia'
    • "beau-f' == 'g:iA'

comme vous pouvez le constater, vous pouvez utiliser le double \ pour échapper à un caractère.


192
répondu SpYk3HH 2016-09-20 14:24:54

si vous voulez juste une date sans infos sur l'heure, utilisez:

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

document.write(today);
121
répondu Marshal 2016-07-08 15:23:03

essayez ceci:

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

le résultat sera comme

15/2/2012
92
répondu Jimmy M 2016-02-10 11:20:31

le plus court possible.

pour obtenir le format comme "2018-08-03":

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

console.log(today)

pour obtenir le format comme "8/3/2018":

let today = new Date().toLocaleDateString()

console.log(today)

aussi, vous pouvez passer locale comme argument, par exemple toLocaleDateString("sr") , etc.

82
répondu Damjan Pavlica 2018-08-05 21:09:24

si vous cherchez un contrôle beaucoup plus granulaire sur les formats de date, je recommande vivement de vérifier momentjs. Formidable bibliothèque - et seulement 5KB. http://momentjs.com/

58
répondu benjamin.keen 2012-12-12 01:03:28

vous pouvez utiliser le 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
répondu Morad 2016-07-08 15:28:51

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

document.write(d)

à décomposer en étapes:

  1. (new Date()).toString() donne " Fri Jun 28 2013 15:30: 18 GMT-0700 (PDT)"

  2. (new Date()).toString().split(' ') divise la chaîne ci-dessus sur chaque espace et retourne un tableau comme suit: ["Fri", "Jun", "28", "2013", "15:31:14", "GMT-0700"," (PDT)"]

  3. (new Date()).toString().split(' ').splice(1,3).join(' ') prend la deuxième, la troisième et quatrième valeurs du tableau ci-dessus, les rejoint avec des espaces, et renvoie une chaîne de caractères "Jun 28 2013"

43
répondu Rishabh Marya 2016-07-08 15:22:27
var date = new Date().toLocaleDateString("en-US");

aussi, vous pouvez appeler la méthode toLocaleDateString avec deux paramètres:

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

Article on MSDN . En savoir plus sur cette méthode sur MDN .

36
répondu Dunaevsky Maxim 2015-12-22 17:18:02

cela fonctionne à chaque fois:

    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);
    
    document.write(today);
34
répondu roshan 2017-03-05 19:07:18
"151910920 plus" propres", version plus simple:

new Date().toLocaleString();

Résultat varie , selon l'utilisateur locale :

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

25
répondu WhereDatApp.com 2017-02-27 07:19:40

vous pouvez utiliser Date.js bibliothèque qui extens Date objet, donc vous pouvez avoir .aujourd'hui() la méthode.

20
répondu eomeroff 2012-06-26 13:00:15

si vous êtes satisfait du format AAAA-MM-JJ, cela fera aussi l'affaire.

new Date().toISOString().split('T')[0]

2018-03-10

19
répondu Aung Htet 2018-03-10 14:48:28

vous pouvez obtenir la date courante appeler la méthode statique maintenant comme ceci:

var now = Date.now()

référence:

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

17
répondu Jose Rojas 2015-07-11 20:03:58

Varun la réponse de ne compte pas TimezoneOffset . Voici une version qui fait:

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

le TimezoneOffset est des minutes, tandis que le constructeur de Date prend des millisecondes, donc la multiplication par 60000 .

13
répondu user1338062 2017-05-23 12:18:27

si vous voulez un format simple DD/MM/YYYY , je viens de trouver cette solution simple, bien qu'elle ne préfixe pas les zéros manquants.

var d = new Date();
document.write( [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/') );
10
répondu Phil Ricketts 2015-06-30 08:10:36
new Date().toDateString();

résultat:

"Mer Fév 03 2016"

8
répondu user3519897 2016-02-03 12:08:37

la réponse la plus courte est: new Date().toJSON().slice(0,10)

8
répondu Blair Anderson 2017-12-01 21:43:24
new Date().toISOString().slice(0,10); 

serait trop de travail

7
répondu Toucouleur 2015-10-01 16:19:05

vous pouvez utiliser ce

<script>
function my_curr_date() {      
    var currentDate = new Date()
    var day = currentDate.getDate();
    var month = currentDate.getMonth() + 1;
    var year = currentDate.getFullYear();
    var my_date = month+"-"+day+"-"+year;
    document.getElementById("dateField").value=my_date;    
}
</script>

le HTML est

<body onload='return my_curr_date();'>
    <input type='text' name='dateField' id='dateField' value='' />
</body>
5
répondu Roger 2014-10-19 19:17:38

si vous utilisez jQuery. Essayez celle-ci :

$.datepicker.formatDate('dd/mm/yy', new Date());

Voici la convention pour formater la date

  • j-jour du mois (Pas de zéro en tête)
  • dd - jour du mois (deux chiffres)
  • o - jour de l'an (pas de zéros)
  • oo-jour de l'année (trois chiffres)
  • D - day nom court
  • DD - nom de jour long
  • m-mois de l'année (aucun premier zéro)
  • mm - mois de l'année (deux chiffres)
  • nom de mois Court
  • MM-mois nom long
  • y - année (deux chiffres)
  • yy - année (quatre chiffres)

Voici la référence pour jQuery datepicker

5
répondu Souvik 2017-02-01 11:50:51

Une ligne de JS solution:

tl;dr



var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];



bord, ff plus tard, & chrome retour todaysDate = "2/7/2017"

"les œuvres"* dans IE10+

MODIFIER 2/7/2017

j'ai découvert que IE10 et IE Edge font des choses un peu différemment.. aller à la figure. avec new Date(Date.now()).toLocaleString() comme entrée,

IE10 retourne:

"Tuesday, February 07, 2017 2:58:25 PM"

je pourrais écrire une grande fonction longue et FTFY. Mais vous devriez vraiment utiliser moment.js pour ce truc. mon script nettoie simplement cela et vous donne le élargi notation US traditionnelle: > todaysDate = "March 06, 2017"

IE BORD retourne:

"‎2‎/‎7‎/‎2017‎ ‎2‎:‎59‎:‎27‎ ‎PM"

bien sûr, ça ne pouvait pas être si facile. Bord de la date de chaîne invisible "•" les caractères entre chaque visibles. donc non seulement nous allons maintenant vérifier si le premier caractère est un nombre, mais les 3 premiers caractères, car il s'avère que n'importe quel caractère unique dans toute la gamme de date sera éventuellement un point ou une barre oblique à un moment donné. Donc pour rester simple, juste .tranche() les trois premières l'avenir des manigances) et ensuite vérifier les chiffres. Il est probablement à noter que ces points invisibles pourraient persister dans votre code. Je creuserais peut-être là-dedans si tu as de plus grands projets que d'imprimer cette chaîne à TA Vue.

mis à jour-liner:

var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];

ça craint de lire. Que dites-vous de:

var dateString = new Date(Date.now()).toLocaleString();
var todaysDate = dateString.slice(0,3).match(/[0-9]/i) ? dateString.split(' ')[0].split(',')[0] : dateString.split(' ')[1] + " " + dateString.split(' ')[2] + " " + dateString.split(' ')[3];

RÉPONSE ORIGINALE À CETTE QUESTION

j'ai une doublure pour vous:

new Date(Date.now()).toLocaleString().split(', ')[0];

et [1] vous donnera l'heure de la journée.

5
répondu Cameron Donahue 2017-03-07 18:55:49

comme toISOString() ne retournera que l'heure TUC courante , et non l'heure locale. On doit faire une date en utilisant".fonction toString () 'pour obtenir la date dans le format yyyy-MM-dd comme

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

pour obtenir la date et l'heure dans yyyy-MM-ddTHH:mm:ss format

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

pour obtenir la date et l'heure dans yyyy-MM-dd HH:mm:ss format

document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0].replace('T',' '));
5
répondu jafarbtech 2018-05-18 07:27:16

vous pouvez aller à cette

var today = new Date();
today = parseInt(today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear()+"\nTime : "+today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
document.write(today);

et voir la documentation pour le constructeur Date (). lien

4
répondu Akhil 2015-08-11 06:31:18

c'est quoi le problème avec ça?. La façon la plus propre de le faire est

var currentDate=new Date().toLocaleString().slice(0,10);

4
répondu ISONecroMAn 2015-10-31 19:39:27

je pense que c'est une vieille question mais la façon la plus facile serait la suivante:

var date = new Date();
var TimeStamp = date.toLocaleString();

function CurrentTime(){
  alert(TimeStamp);
}

cela va saisir l'heure actuelle, la passer à une chaîne basée sur l'emplacement et ensuite vous pouvez appeler la fonction CurrentTime pour afficher l'heure. Ce serait, pour moi, le moyen le plus efficace d'obtenir un horodatage pour quelque chose.

3
répondu Brock Davis 2015-01-19 22:21:47
var dateTimeToday = new Date();
var dateToday = new Date(
    dateTimeToday.getFullYear(), 
    (dateTimeToday.getMonth() + 1) /*Jan = 0! */, 
    dateTimeToday.getDate(), 
    0, 
    0, 
    0, 
    0);
3
répondu Jas 2015-04-12 16:07:32

Je ne sais pas si ça va aider quelqu'un, mais j'utilise ça pour obtenir l'objet Date d'aujourd'hui.

new Date( 3600000*Math.floor(Date.now()/3600000) )
3
répondu marverix 2015-10-01 15:25:15

cela peut vous aider

var date = new Date();
console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());

la date courante sera imprimée dans le format JJ/MM/AAAA

3
répondu Jayant Patil 2016-08-17 08:33:10