101 votes

Comment formater une date au format MM/jj/aaaa HH:mm:ss en JavaScript ?

Possible Duplicate:
Formatting a date in javascript

Je connais d'autres formats possibles dans l'objet Date de JavaScript, mais je n'ai pas compris comment formater la date au format MM/jj/aaaa HH:mm:ss.

Veuillez me faire savoir si vous rencontrez un tel problème.

174voto

KooiInc Points 38845

[Addendum 12/2022]: Voici une bibliothèque pour formater les dates en utilisant Intl.DateTimeFormat.

[Addendum 01/2024]: Et voici une bibliothèque de manipulation de dates (ES-)

Essayez quelque chose comme ceci

var d = new Date,
    dformat = [d.getMonth()+1,
               d.getDate(),
               d.getFullYear()].join('/')+' '+
              [d.getHours(),
               d.getMinutes(),
               d.getSeconds()].join(':');

Si vous voulez des zéros initiaux pour les valeurs < 10, utilisez cette extension de nombre

Number.prototype.padLeft = function(base,chr){
    var  len = (String(base || 10).length - String(this).length)+1;
    return len > 0? new Array(len).join(chr || '0')+this : this;
}
// utilisation
//=> 3..padLeft() => '03'
//=> 3..padLeft(100,'-') => '--3' 

Appliqué au code précédent:

var d = new Date,
    dformat = [(d.getMonth()+1).padLeft(),
               d.getDate().padLeft(),
               d.getFullYear()].join('/') +' ' +
              [d.getHours().padLeft(),
               d.getMinutes().padLeft(),
               d.getSeconds().padLeft()].join(':');
//=> dformat => '05/17/2012 10:52:21'

Voir ce code dans [jsfiddle][1]

[edit 2019] En utilisant ES20xx, vous pouvez utiliser un modèle littéral et la nouvelle extension de chaîne padStart.

const dt = new Date();
const padL = (nr, len = 2, chr = `0`) => `${nr}`.padStart(2, chr);

console.log(`${
    padL(dt.getMonth()+1)}/${
    padL(dt.getDate())}/${
    dt.getFullYear()} ${
    padL(dt.getHours())}:${
    padL(dt.getMinutes())}:${
    padL(dt.getSeconds())}`
);

72voto

Salman A Points 60620

Vous pouvez toujours formater une date en extrayant les parties et en les combinant en utilisant des fonctions de chaîne dans l'ordre désiré :

function formatDate(date) {
  let datePart = [
    date.getMonth() + 1,
    date.getDate(),
    date.getFullYear()
  ].map((n, i) => n.toString().padStart(i === 2 ? 4 : 2, "0")).join("/");
  let timePart = [
    date.getHours(),
    date.getMinutes(),
    date.getSeconds()
  ].map((n, i) => n.toString().padStart(2, "0")).join(":");
  return datePart + " " + timePart;
}

let date = new Date();
console.log("%o => %s", date, formatDate(date));

6voto

Neji Points 2618
var d = new Date();

var curr_date = d.getDate();

var curr_month = d.getMonth();

var curr_year = d.getFullYear();

document.write(curr_date + "-" + curr_month + "-" + curr_year);

en utilisant cela, vous pouvez formater la date.

vous pouvez changer l'apparence de la manière dont vous le souhaitez ensuite

pour plus d'informations, vous pouvez visiter ici

-3voto

JDev Points 2541
var d = new Date();

// appel de la fonction
formatDate(d,4);

function formatDate(dateObj,format)
{
    var monthNames = \[ "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre" \];
    var curr\_date = dateObj.getDate();
    var curr\_month = dateObj.getMonth();
    curr\_month = curr\_month + 1;
    var curr\_year = dateObj.getFullYear();
    var curr\_min = dateObj.getMinutes();
    var curr\_hr= dateObj.getHours();
    var curr\_sc= dateObj.getSeconds();
    if(curr\_month.toString().length == 1)
    curr\_month = '0' + curr\_month;      
    if(curr\_date.toString().length == 1)
    curr\_date = '0' + curr\_date;
    if(curr\_hr.toString().length == 1)
    curr\_hr = '0' + curr\_hr;
    if(curr\_min.toString().length == 1)
    curr\_min = '0' + curr\_min;

    if(format ==1)//dd-mm-yyyy
    {
        return curr\_date + "-"+curr\_month+ "-"+curr\_year;       
    }
    else if(format ==2)//yyyy-mm-dd
    {
        return curr\_year + "-"+curr\_month+ "-"+curr\_date;       
    }
    else if(format ==3)//dd/mm/yyyy
    {
        return curr\_date + "/"+curr\_month+ "/"+curr\_year;       
    }
    else if(format ==4)// MM/dd/yyyy HH:mm:ss
    {
        return curr\_month+"/"+curr\_date +"/"+curr\_year+ " "+curr\_hr+":"+curr\_min+":"+curr\_sc;       
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X