Comment obtenir la date actuelle en JavaScript?
new Date()
renvoie l' heure actuelle , pas la date actuelle . La distinction est importante si vous essayez de la comparer à une autre date qui n'a pas de composante horaire (c'est-à-dire à minuit).
Comment obtenir la date actuelle en JavaScript?
new Date()
renvoie l' heure actuelle , pas la date actuelle . La distinction est importante si vous essayez de la comparer à une autre date qui n'a pas de composante horaire (c'est-à-dire à minuit).
Réponses:
Permet new Date()
de générer un nouvel Date
objet contenant la date et l'heure actuelles.
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);
Cela vous donnera la date d'aujourd'hui au format mm / jj / aaaa.
Modifiez simplement le today = mm +'/'+ dd +'/'+ yyyy;
format que vous souhaitez.
01
, 02
...,09
Date.prototype.toLocaleDateString()
méthode est une solution plus flexible. Il fait partie de JavaScript depuis ECMAScript 5.1 et est bien pris en charge par les navigateurs à feuilles persistantes. MDN:toLocaleDateString()
var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);
Utilisez l' replace
option si vous comptez réutiliser la utc
variable new Date(utc)
, comme Firefox et Safari ne reconnaissent pas une date avec des tirets.
toUTCString()
renvoie comme utc datetime.
moment( new Date().toJSON().slice(0, 10) )
MISE À JOUR! , Défiler vers le bas
Si vous voulez quelque chose de simple et joli pour 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>
MISE À JOUR D'UBBER Après beaucoup de tergiversations, j'ai finalement GitHubbed et mis à jour cela avec la solution finale que j'ai utilisée pour moi-même. Il a même eu des modifications de dernière minute pour le rendre plus doux! Si vous recherchez l'ancien jsFiddle, veuillez le voir .
Cette mise à jour se décline en 2 versions, toujours relativement petites, mais pas aussi petites que ma réponse originale. Si vous voulez extrêmement petit, allez-y.
Remarquez également: c'est encore moins gonflé que moment.js. Bien que moment.js soit sympa, imo, il a trop de méthodes profanes, qui nécessitent d'apprendre moment comme s'il s'agissait d'une langue. Le mien utilise ici le même format commun que PHP: date .
Flavour 1
new Date().format(String)
My Personal Fav. Je connais le tabou mais fonctionne très bien sur l'objet Date. Soyez juste conscient de tout autre mod que vous pourriez avoir sur l'objet Date.
// use as simple as
new Date().format('m-d-Y h:i:s'); // 07-06-2016 06:38:34
Flavour 2
dateFormat(Date, String)
Méthode tout-en-un plus traditionnelle. A toutes les capacités du précédent, mais est appelé via la méthode avec le paramètre Date.
// 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)
Elle contient bien plus qu'une simpleformat
option. Il étend l'objet Date de base et inclut des méthodes telles queaddDays
. Pour plus d'informations, veuillez consulter le Git .
Dans ce mod, les caractères de format sont inspirés de PHP: date . Pour une liste complète, veuillez consulter mon README
Ce mod a également une liste beaucoup plus longue de formats prédéfinis. Pour utiliser un format prédéfini, entrez simplement son nom de clé.dateFormat(new Date(), 'pretty-a');
Comme vous pouvez le remarquer, vous pouvez utiliser le double \
pour échapper à un personnage.
Le plus court possible.
Pour obtenir un format comme "2018-08-03":
let today = new Date().toISOString().slice(0, 10)
console.log(today)
Pour obtenir un format comme "03/08/2018":
let today = new Date().toLocaleDateString()
console.log(today)
Vous pouvez également passer les paramètres régionaux comme argument, par exemple toLocaleDateString("sr")
, etc.
Si vous voulez juste une date sans informations d'heure, utilisez:
var today = new Date();
today.setHours(0, 0, 0, 0);
document.write(today);
Essaye ça:
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
Si vous recherchez un contrôle beaucoup plus précis sur les formats de date, je vous recommande vivement de vérifier momentjs. Bibliothèque formidable - et seulement 5 Ko. http://momentjs.com/
Vous pouvez utiliser 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>
moment().format("L")
pour respecter les paramètres régionaux actuels.
var d = (new Date()).toString().split(' ').splice(1,3).join(' ');
document.write(d)
Pour le décomposer en étapes:
(new Date()).toString()
donne "Ven 28 juin 2013 15:30:18 GMT-0700 (PDT)"
(new Date()).toString().split(' ')
divise la chaîne ci-dessus sur chaque espace et renvoie un tableau comme suit: ["Ven", "Jun", "28", "2013", "15:31:14", "GMT-0700", "(PDT)" ]
(new Date()).toString().split(' ').splice(1,3).join(' ')
prend les deuxième, troisième et quatrième valeurs du tableau ci-dessus, les joint avec des espaces et renvoie une chaîne "28 juin 2013"
Date().split(' ').splice(1,3).join(' ')
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);
console.log(today);
var date = new Date().toLocaleDateString("en-US");
Vous pouvez également appeler la méthode toLocaleDateString
avec deux paramètres:
var date = new Date().toLocaleDateString("en-US", {
"year": "numeric",
"month": "numeric"
});
Article sur MSDN . En savoir plus sur cette méthode sur MDN .
new Date().toLocaleDateString("de-de")
fait l'affaire pour moi.
Version plus propre et plus simple:
new Date().toLocaleString();
Le résultat varie en fonction des paramètres régionaux de l'utilisateur :
27/02/2017, 9:15:41 AM
Si vous êtes satisfait du format AAAA-MM-JJ, cela fera également l'affaire.
new Date().toISOString().split('T')[0]
2018-03-10
Vous pouvez utiliser la bibliothèque Date.js qui étend l'objet Date, vous pouvez donc avoir la méthode .today ().
Vous pouvez obtenir la date actuelle appelez 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
var dtToday = new Date(date.now);
La réponse de Varun ne tient pas compte de 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 minutes, tandis que le constructeur Date prend des millisecondes, donc la multiplication par 60000
.
La réponse la plus courte est: new Date().toJSON().slice(0,10)
new Date().toDateString();
Résultat:
"Wed Feb 03 2016"
Comme toISOString()
ne renverra que l'heure UTC actuelle, pas l'heure locale. Nous devons faire une date en utilisant la fonction '.toString ()' pour obtenir la date au yyyy-MM-dd
format comme
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('T')[0]);
Pour mettre la date et l'heure au yyyy-MM-ddTHH:mm:ss
format
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0]);
Pour mettre la date et l'heure au yyyy-MM-dd HH:mm:ss
format
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0].replace('T',' '));
Si vous voulez un DD/MM/YYYY
format simple , 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('/') );
new Date().toISOString().slice(0,10);
fonctionnerait aussi
DERNIÈRE MODIFICATION: 23/08/19 La bibliothèque date-fns fonctionne un peu comme moment.js mais a une ENCORE plus petite empreinte. Il vous permet de choisir les fonctions que vous souhaitez inclure dans votre projet afin que vous n'ayez pas à compiler la bibliothèque entière pour formater la date d'aujourd'hui. Si une bibliothèque tierce minimale n'est pas une option pour votre projet, j'approuve la solution acceptée par Samuel Meddows.
Préserver l'histoire ci-dessous car cela a aidé quelques personnes. Mais pour mémoire, c'est assez hacky et susceptible de se casser sans avertissement, comme le sont la plupart des solutions de ce post
EDIT 2/7/2017 Une solution JS en ligne:
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];
edge, ff latest, & chrome returntodaysDate = "2/7/2017"
"works" * dans IE10 +
Explication
J'ai découvert qu'IE10 et IE Edge font les choses un peu différemment. avecnew Date(Date.now()).toLocaleString()
comme entrée,
IE10 renvoie:
"Tuesday, February 07, 2017 2:58:25 PM"
Je pourrais écrire une grande fonction longue et FTFY. Mais vous devez vraiment utiliser moment.js pour ce genre de choses. Mon script nettoie simplement cela et vous donne la notation américaine traditionnelle étendue :> todaysDate = "March 06, 2017"
IE EDGE renvoie:
"2/7/2017 2:59:27 PM"
Bien sûr, cela ne pouvait pas être aussi simple. La chaîne de date d'Edge contient des caractères «•» invisibles entre chacun d'eux. Donc, non seulement nous allons maintenant vérifier si le premier caractère est un nombre, mais les 3 premiers caractères, car il se trouve que tout caractère unique dans la plage de dates entière finira par être un point ou une barre oblique à un moment donné. Donc, pour garder les choses simples, juste .slice () les trois premiers caractères (petit tampon contre les futurs manigances), puis de vérifier les nombres. Il convient probablement de noter que ces points invisibles pourraient potentiellement persister dans votre code. Je creuserais peut-être si vous avez de plus gros plans que d'imprimer cette chaîne à votre vue.
∴ one-liner mis à jour:
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 diriez-vous:
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
J'ai une doublure pour vous:
new Date(Date.now()).toLocaleString().split(', ')[0];
et [1]
vous donnera l'heure de la journée.
Vous pouvez utiliser ceci
<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>
Si vous utilisez jQuery. Essayez cette doublure:
$.datepicker.formatDate('dd/mm/yy', new Date());
Voici la convention de mise en forme de la date
Voici la référence pour jQuery datepicker
Un moyen simple de retirer cela (tout en considérant votre fuseau horaire actuel, il profite du format ISO aaaa-mm-jj) est:
let d = new Date().toISOString().substring(0,19).replace("T"," ") // "2020-02-18 16:41:58"
Habituellement, c'est un format de date compatible assez polyvalent et vous pouvez le convertir en valeur de date pure si nécessaire:
Date.parse(d); // 1582044297000
Vous pouvez commander ceci
var today = new Date();
today = parseInt(today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear()+"\nTime : "+today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
document.write(today);
Et consultez la documentation du constructeur Date (). lien
Quel est le gros problème avec cela .. La façon la plus propre de le faire est
var currentDate=new Date().toLocaleString().slice(0,10);
3/4/2018,
, mieux à utiliser new Date().toJSON().slice(0,10)
.
.slice(0,10)
Cela peut vous aider
var date = new Date();
console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());
Cela imprimera la date actuelle au format jj / mm / aaaa
C'est bien pour obtenir une date formatée
let date = new Date().toLocaleDateString("en", {year:"numeric", day:"2-digit", month:"2-digit"});
console.log(date);
Je pense que c'est une vieille question mais la manière la plus simple serait la suivante:
var date = new Date();
var TimeStamp = date.toLocaleString();
function CurrentTime(){
alert(TimeStamp);
}
Cela saisira l'heure actuelle, la passera à une chaîne basée sur l'emplacement, puis vous pourrez appeler la fonction CurrentTime pour afficher l'heure. Ce serait, pour moi, le moyen le plus efficace d'obtenir un horodatage pour quelque chose.
var currentTime = new Date();