Comment puis-je obtenir la date actuelle en JavaScript?
Comment puis-je obtenir la date actuelle en JavaScript?
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.
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.
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
- Date.format.min.js 5.08 KB
- dateFormat.min.js 4.16 KB
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 optionformat
. 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, 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.
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);
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
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.
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/
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>
var d = (new Date()).toString().split(' ').splice(1,3).join(' ');
document.write(d)
à décomposer en étapes:
-
(new Date()).toString()
donne " Fri Jun 28 2013 15:30: 18 GMT-0700 (PDT)" -
(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)"] -
(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"
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 .
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);
new Date().toLocaleString();
Résultat varie , selon l'utilisateur locale :
2/27/2017, 9:15:41 AM
si vous êtes satisfait du format AAAA-MM-JJ, cela fera aussi l'affaire.
new Date().toISOString().split('T')[0]
2018-03-10
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
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
.
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('/') );
la réponse la plus courte est: new Date().toJSON().slice(0,10)
new Date().toISOString().slice(0,10);
serait trop de travail
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>
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
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 retourtodaysDate = "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.
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',' '));
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
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);
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.
var dateTimeToday = new Date();
var dateToday = new Date(
dateTimeToday.getFullYear(),
(dateTimeToday.getMonth() + 1) /*Jan = 0! */,
dateTimeToday.getDate(),
0,
0,
0,
0);
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) )
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