web-dev-qa-db-fra.com

Comment puis-je obtenir la date actuelle en JavaScript?

Comment puis-je obtenir la date actuelle en JavaScript?

1875
Suresh

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

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

Cela vous donnera la date d'aujourd'hui au format mm/jj/aaaa.

Changez simplement today = mm +'/'+ dd +'/'+ yyyy; au format que vous souhaitez.

2253
Samuel Meddows

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

Utilisez l'option replace si vous souhaitez réutiliser la variable utc, telle que new Date(utc), étant donné que Firefox et Safari ne reconnaissent pas la date avec des tirets.

374
Varun Natraaj

MISE À JOUR! , défilement 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>_

UBBER UPDATE Après beaucoup de tergiversations, j'ai finalement GitHubbed et mis à jour cela avec la solution finale que j'utilise moi-même. Il a même eu des modifications de dernière minute pour le rendre plus doux! Si vous cherchez le vieux jsFiddle, s'il vous plaît voir ceci .

Cette mise à jour arrive 2 saveurs, encore relativement petites, bien que pas aussi petites que mon précédent, réponse originale. Si vous voulez extrêmement petit, allez avec ça.
Remarque: ceci est toujours moins gonflé que moment.js. Bien que moment.js soit agréable, il a trop de méthodes laïques, qui nécessitent un moment d'apprentissage comme s'il s'agissait d'une langue. Le mien utilise ici le même format commun que PHP: date .

Liens rapides

Saveur 1 new Date().format(String) Mes favoris personnels. Je connais le tabou mais fonctionne très bien sur l'objet Date. Sachez simplement que vous pouvez avoir d'autres objets dans 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 tout-en-un plus traditionnelle. A toutes les capacités de la précédente, mais est appelé via la méthode avec Date param.

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

BONUS Flavour (requiert jQuery) $.date(Date, String) Il contient beaucoup 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 vous reporter à la Git .

Dans ce mod, les caractères de format 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é-créés. Pour utiliser un format prédéfini, entrez simplement son nom de clé. dateFormat(new Date(), 'pretty-a');

  • 'composé'
    • 'commonLogFormat' == 'j/M/A: 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/j/Y h: i: sA'
    • 'ATOM' == 'Y-m-d \\ TH: i: sP'
    • 'COOKIE' == 'l-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-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'
  • 'jolie'
    • 'pretty-a' == 'g: i.sA l jS \\ o \\ f F Y'
    • 'pretty-b' == 'g: iA l jS \\ o \\ f F Y'
    • 'joli-c' == 'n/d/Y g: iA'
    • 'joli-d' == 'n/d/Y'
    • 'pretty-e' == 'F jS - g: ia'
    • 'pretty-f' == 'g: iA'

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


217
SpYk3HH

Si vous voulez juste une date sans information sur l'heure, utilisez:

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

document.write(today);

131
Marshal

Le plus court possible. 

Pour obtenir un format du type "2018-08-03":

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

console.log(today)

Pour obtenir un format du type "03/08/2018":

let today = new Date().toLocaleDateString()

console.log(today)

En outre, vous pouvez passer locale en argument, par exemple toLocaleDateString("sr"), etc.

115
Damjan Pavlica

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
93
Jimmy M

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

62
benjamin.keen

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>

51
Morad

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

document.write(d)

Pour le décomposer en étapes:

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

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

  3. (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"

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

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

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

Article sur MSDN . Plus d'informations sur cette méthode sur MDN .

39
Dunaevsky Maxim

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

36
roshan

Version plus propre, plus simple:

new Date().toLocaleString();

Le résultat varie en fonction de l'utilisateur locale:

27/02/2017, 09:15:41

29
Oded Breiner

Vous pouvez utiliser Date.js library qui étend l’objet Date, vous pouvez donc utiliser la méthode .today ().

21
eomeroff

Vous pouvez obtenir la date actuelle en appelant la méthode statique comme ceci:

var now = Date.now()

référence:

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

18
Jose Rojas

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

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

La TimezoneOffset est en minutes, alors que le constructeur Date prend des millisecondes, donc la multiplication par 60000.

15
user1338062

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

13
Blair Anderson

Si vous voulez un format DD/MM/YYYY simple, je viens de proposer cette solution simple, bien qu’elle ne prévoie pas les zéros manquants.

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

11
Phil Ricketts
new Date().toDateString();

Résultat:

"Mer 3 fév 2016"

10
user3519897
new Date().toISOString().slice(0,10); 

fonctionnerait aussi

8
Toucouleur

Une solution JS sur une 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, dernière version, et retour de chrome todaysDate = "2/7/2017" 
"fonctionne" * dans IE10 +

EDIT 2/7/2017

J'ai découvert que IE10 et IE Edge font les choses un peu différemment .. allez comprendre . Avec new Date(Date.now()).toLocaleString() en 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 étendue traditionnelle américaine: > todaysDate = "March 06, 2017"

IE Edge renvoie:

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

Bien sûr, cela ne pourrait pas être aussi facile. La chaîne de date de Edge comporte des "•" caractères invisibles entre chaque caractère visible. Nous allons donc non seulement vérifier si le premier caractère est un nombre, mais les trois premiers caractères, car il s'avère que chaque caractère dans toute la plage de dates sera éventuellement un point ou une barre oblique à un moment donné. Donc, pour que les choses restent simples, il suffit de .slice () les trois premiers caractères (petit tampon contre les futures manigances), puis de vérifier les nombres. Il est à noter que ces points invisibles pourraient éventuellement persister dans votre code. Je pourrais peut-être creuser dans ce domaine si vous avez des projets plus ambitieux que la simple impression de cette chaîne à votre avis.

∴ 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 un one-liner pour vous:

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

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

6
Cameron Donahue

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>
6
Roger

Si vous utilisez jQuery. Essayez cette doublure:

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

Voici la convention pour formater la date 

  • d - jour du mois (pas de zéro)
  • jj - jour du mois (deux chiffres)
  • o - jour de l'année (pas de zéros)
  • oo - jour de l'année (trois chiffres)
  • Nom du jour J - abrégé
  • JJ - nom du jour
  • m - mois de l'année (pas de zéro)
  • mm - mois de l'année (deux chiffres)
  • M - Nom du mois abrégé
  • MM - Nom du mois
  • y - année (deux chiffres)
  • aa - année (quatre chiffres)

Voici la référence pour jQuery datepicker

6
Souvik

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 voir la documentation du constructeur Date () . link

4
Akhil
var dateTimeToday = new Date();
var dateToday = new Date(
    dateTimeToday.getFullYear(), 
    (dateTimeToday.getMonth() + 1) /*Jan = 0! */, 
    dateTimeToday.getDate(), 
    0, 
    0, 
    0, 
    0);
3
Jas

Cela peut vous aider

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

Ceci imprimera la date actuelle au format jj/mm/aaaa

3
Jayant Patil

Je ne sais pas si cela aidera quelqu'un, mais je l'utilise pour obtenir l'objet Date aujourd'hui.

new Date( 3600000*Math.floor(Date.now()/3600000) )
3
marverix

Je pense que c'est une vieille question mais le moyen le plus simple serait le suivant:

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

function CurrentTime(){
  alert(TimeStamp);
}

Cela va saisir l'heure actuelle, la transmettre à une chaîne en fonction de l'emplacement, puis vous pouvez appeler la fonction CurrentTime pour afficher l'heure. Pour moi, ce serait le moyen le plus efficace d’obtenir un horodatage de quelque chose.

3
Brock Davis

2,39 Ko minifiée. Un fichier. https://github.com/rhroyston/clock-js

J'essaie juste d'aider ...

 enter image description here

2
Ron Royston

Si vous recherchez un contrôle beaucoup plus granulaire sur les formats de date, je vous recommande vivement de vérifier date-FNS. Une bibliothèque formidable - beaucoup plus petite que moment.js et son approche basée sur les fonctions le rendent beaucoup plus rapide que les autres bibliothèques basées sur les classes. Fournir un grand nombre d'opérations nécessaires sur les dates. 

https://date-fns.org/docs/Getting-Started

2
jyotibisht

Jolie impression la date comme ça.

1er juin 2015 11:36:48

https://Gist.github.com/Gerst20051/7d72693f722bbb0f6b58

2
Andy

C'est bien pour avoir une date formatée

let date = new Date().toLocaleDateString("en", {year:"numeric", day:"2-digit", month:"2-digit"});
console.log(date);
1
Yugandhar Chaudhari

J'ai pensé coller ce que j'utilise pour une date réelle:

function realDate(date){
    return date.getDate() + "/" + (date.getMonth()+1) + "/" + date.getUTCFullYear();
}

var ourdate = realDate(new Date);
1
Waheed

Cela fait beaucoup;

var today = new Date();
var date = today.getFullYear()+'/'+(today.getMonth()+1)+'/'+today.getDate();
1
anil shrestha
(function() { var d = new Date(); return new Date(d - d % 86400000); })()
1
Andrea

Essayez ceci ...__ HTML

<p id="date"></p>

JS

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

Démo de travail pour la date actuelle

Démo

1
Shanu Shaji

Ceci est mon préféré actuel, car il est à la fois flexible et modulaire. C'est une collection de (au moins) trois fonctions simples:

/**
 * Returns an array with date / time information
 * Starts with year at index 0 up to index 6 for milliseconds
 * 
 * @param {Date} date   date object. If falsy, will take current time.
 * @returns {[]}
 */
getDateArray = function(date) {
    date = date || new Date();
    return [
        date.getFullYear(),
        exports.pad(date.getMonth()+1, 2),
        exports.pad(date.getDate(), 2),
        exports.pad(date.getHours(), 2),
        exports.pad(date.getMinutes(), 2),
        exports.pad(date.getSeconds(), 2),
        exports.pad(date.getMilliseconds(), 2)
    ];
};

Voici la fonction pad:

 /**
 * Pad a number with n digits
 *
 * @param {number} number   number to pad
 * @param {number} digits   number of total digits
 * @returns {string}
 */
exports.pad = function pad(number, digits) {
    return new Array(Math.max(digits - String(number).length + 1, 0)).join(0) + number;
};

Enfin, je peux soit construire ma chaîne de date à la main, soit utiliser une simple fonction pour le faire pour moi:

/**
 * Returns nicely formatted date-time
 * @example 2015-02-10 16:01:12
 *
 * @param {object} date
 * @returns {string}
 */
exports.niceDate = function(date) {
    var d = exports.getDateArray(date);
    return d[0] + '-' + d[1] + '-' + d[2] + ' ' + d[3] + ':' + d[4] + ':' + d[5];
};

/**
 * Returns a formatted date-time, optimized for machines
 * @example 2015-02-10_16-00-08
 *
 * @param {object} date
 * @returns {string}
 */
exports.roboDate = function(date) {
    var d = exports.getDateArray(date);
    return d[0] + '-' + d[1] + '-' + d[2] + '_' + d[3] + '-' + d[4] + '-' + d[5];
};
1
Fannon

Cela peut vous aider

let d = new Date();                      

this.dateField = element(by.xpath('xpath here'));
this.datetField.sendKeys((d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear());
1
RRR

Cette réponse s'adresse aux personnes recherchant une date au format ISO-8601 et au fuseau horaire . C'est un JS pur pour ceux qui ne souhaitent inclure aucune bibliothèque de dates.

      var date = new Date();
      var timeZone = date.toString();
      //Get timezone ( 'GMT+0200' )
      var timeZoneIndex = timeZone.indexOf('GMT');
      //Cut optional string after timezone ( '(heure de Paris)' )
      var optionalTimeZoneIndex = timeZone.indexOf('(');
      if(optionalTimeZoneIndex != -1){
          timeZone = timeZone.substring(timeZoneIndex, optionalTimeZoneIndex);
      }
      else{
          timeZone = timeZone.substring(timeZoneIndex);
      }
      //Get date with JSON format ( '2019-01-23T16:28:27.000Z' )
      var formattedDate = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toJSON();
      //Cut ms
      formattedDate = formattedDate.substring(0,formattedDate.indexOf('.'));
      //Add timezone
      formattedDate = formattedDate + ' ' + timeZone;
      console.log(formattedDate);

Imprimez quelque chose comme ça dans la console:

2019-01-23T17: 12: 52 GMT + 0100 

JSFiddle: https://jsfiddle.net/n9mszhjc/4/

0
alain.janinm

Vous pouvez obtenir en utilisant new Date() à la date actuelle du navigateur en JavaScript. 

Mais nous avons actuellement un bon plugin pour analyser, valider, manipuler et afficher les dates et les heures en JavaScript} en utilisant moment.js

0
Ramesh Rajendran

Vous pouvez utiliser l’API DATE indiquée ci-dessous pour l’utilisation quotidienne du formatage de la date, ainsi que pour l’obtention de la date actuelle, de la veille, etc. par exemple. 

 var dt = new Date();  
       /// ANY DATE YOU WANT --  dt = new Date(""July 21, 1983 01:15:00"")

       dateObj = dt.getFormattedDate();

       alert( dateObj.isToday() );
       alert( dateObj.todayDay() );
       alert( dateObj.monthNameDayYear() );

(function () {

    fnDateProcessor = function () {
        var that = this;

        return {

            yyyymmdd: function (separator) {
                var fdate = this.formatDate(true, true) ,
                    separator = separator ? separator : "-";
                return fdate.year + separator + fdate.month + separator + fdate.day;
            },

            monthNameDayYear: function () {
                var fdate = this.formatDate(true, true);
                return fdate.monthName + " " + fdate.day + ", " + fdate.year;
            },

            ddmmyyyy: function (separator) {
                var fdate = this.formatDate(true, true) ,
                    separator = separator ? separator : "/";
                return fdate.day + separator + fdate.month + separator + fdate.year;
            },

            meridianTime: function () {
                var fdate = this.formatDate();
                return fdate.hour + ":" + fdate.minute + " " + fdate.meridian;
            },

            monthDay: function (separator) {

                var fdate = this.formatDate();
                separator = checkSeparator(separator);
                return fdate.monthName.substring(0, 3) + separator + fdate.day;

            },

            weekMonthDayYear: function () {
                var fdate = this.formatDate();
                //separator = checkSeparator(separator);

                return fdate.weekDay + " " + fdate.monthName.substring(0, 3) +
                    fdate.day + " ," + fdate.year;
            },

            timeZoneInclusive: function () {

                return new Date(that);
            },

            todayDay: function () { return new Date().getDate(); },
            todayMonth: function () { return new Date().getMonth() + 1; },
            dateDay: function () { return this.formatDate().day; },
            dateMonth: function () { return this.formatDate().month; },
            isToday: function () { return this.sameDate(new Date()); },
            isYesterday: function () {
                d = new Date(); d.setDate(d.getDate() - 1);
                return this.sameDate(d);
            },

            formatDate: function () {
                var zeroPaddedMnth = true, zeroPaddedDay = false,
                    zeroPaddedHr = false, zeroPaddedMin = true;
                // Possible to take Options arg that overide / merge to defaults

                var monthNames = [
                    "January", "February", "March",
                    "April", "May", "June", "July",
                    "August", "September", "October",
                    "November", "December"
                ];
                var weekDays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];

                var day = getFormattedDay(that.getDate(), zeroPaddedDay);
                var monthIndex = that.getMonth();
                var month = getFormattedMonth(monthIndex + 1, zeroPaddedMnth);
                var year = that.getFullYear();
                var wkDay = that.getDay();
                var hour = getFormattedHour(that.getHours(), zeroPaddedHr);
                var minute = getFormattedMinute(that.getMinutes(), zeroPaddedMin);
                var meridian = getMeridian(that.getHours());

                return {
                    "day": day, "monthName": monthNames[monthIndex], "month": month,
                    "weekDay": weekDays[wkDay], "year": year, "hour": hour, "minute": minute,
                    "meridian": meridian
                };
            },

            compareDate: function (d2) {     /// validates if caller is less than argument                            
                d2 = _isString(d2) ? new Date(d2) : d2;

                return !this.sameDate(d2)
                    && typeof d2 != "number"
                    ? that < d2 : false;
            },

            sameDate: function (d) {
                return that.getFullYear() === d.getFullYear()
                    && that.getDate() === d.getDate()
                    && that.getMonth() === d.getMonth();
            },

            dateAfter: function (separator) {
                var fdate = this.formatDate();
                var separator = separator ? separator : "-";
                return fdate.year + separator + fdate.month + separator + (fdate.day + 1);
            }

        };

    };


    function _isString(obj) {
        var toString = Object.prototype.toString;
        return toString.call(obj) == '[object String]';
    }

    function checkSeparator(separator) {
        // NOT GENERIC ... NEEDS REVISION
        switch (separator) {
            case " ": sep = separator; break;
            case ",": sep = " ,"; break;
            default:
                sep = " "; break;
        }

        return sep;
    }

    function getFormattedHour(h, zeroPadded) {
        h = h % 12;
        h = h ? h : 12;    //  12 instead of 00
        return zeroPadded ? addZero(h) : h;
    }

    function getFormattedMinute(m, zeroPadded) {

        return zeroPadded ? addZero(m) : m;
    }

    function getFormattedDay(dd, zeroPadded) {

        return zeroPadded ? addZero(dd) : dd;
    }
    function getFormattedMonth(mm, zeroPadded) {

        return zeroPadded ? addZero(mm) : mm;
    }

    function getMeridian(hr) {

        return hr >= 12 ? 'PM' : 'AM';
    }

    function addZero(i) {
        if (i < 10) {
            i = "0" + i;
        }
        return i;
    }


    Date.prototype.getFormattedDate = fnDateProcessor;

} ());
0
Yergalem

Les bases

Si vous êtes satisfait du format Sun Jan 24 2016 21:23:07 GMT+0100 (CET), vous pouvez simplement utiliser ce code:

var today = new Date();

Date.prototype.toLocaleDateString ()

Si vous souhaitez formater votre sortie, envisagez d'utiliser Date.prototype.toLocaleDateString() :

var today = new Date().toLocaleDateString('de-DE', {     
    weekday: 'long', 
    year: 'numeric',
    month: 'long',
    day: 'numeric'
});

Si vous avez exécuté ce code aujourd'hui (24 janvier 2016) sur un navigateur moderne, la chaîne Sonntag, 24. Januar 2016 serait générée. Les anciens navigateurs peuvent générer un résultat différent, par exemple. IE <11 ne prend pas en charge les arguments de paramètres régionaux ou d'options.

Going custom

Si Date.prototype.toLocaleDateString() n'est pas assez flexible pour répondre à vos besoins, vous pouvez envisager de créer un objet Date personnalisé ressemblant à ceci:

var DateObject = (function() {
    var monthNames = [
      "January", "February", "March",
      "April", "May", "June", "July",
      "August", "September", "October",
      "November", "December"
    ];
    var date = function(str) {
        this.set(str);
    };
    date.prototype = {
        set : function(str) {
            var dateDef = str ? new Date(str) : new Date();
            this.day = dateDef.getDate();
            this.dayPadded = (this.day < 10) ? ("0" + this.day) : "" + this.day;
            this.month = dateDef.getMonth() + 1;
            this.monthPadded = (this.month < 10) ? ("0" + this.month) : "" + this.month;
            this.monthName = monthNames[this.month - 1];
            this.year = dateDef.getFullYear();
        }
    };
    return date;
})();

Si vous avez inclus ce code et exécuté new DateObject() aujourd'hui (24 janvier 2016), un objet présentant les propriétés suivantes sera généré:

day: 24
dayPadded: "24"
month: 1
monthPadded: "01"
monthName: "January"
year: 2016
0
John Slegers

Si vous cherchez à formater en chaîne.

statusUpdate = "time " + new Date(Date.now()).toLocaleTimeString();

sortie "heure 11:30:53"

0
Harry Bosh

Avec la possibilité de rendre au format personnalisé et d'utiliser le nom du mois dans différents environnements locaux

const locale = 'en-us';
const d = new Date(date);

const day = d.getDate();
const month = d.toLocaleString(locale, { month: 'long' });
const year = d.getFullYear();

const time = d.toLocaleString(locale, { hour12: false, hour: 'numeric', minute: 'numeric'});

return `${month} ${day}, ${year} @ ${time}`; // May 5, 2019 @ 23:41
0
Alex Ivasyuv