Format de Javascript date / heure

Je dois changer une date / heure de 2014 à 20-20 15:30:00 pour regarder comme 20/08/2014 15h30

Est-ce possible d'utiliser l'objet Date de javascript?

Oui, vous pouvez utiliser l' objet Date () javascript natif et ses méthodes.

Par exemple, vous pouvez créer une fonction comme:

 function formatDate(date) { var hours = date.getHours(); var minutes = date.getMinutes(); var ampm = hours >= 12 ? 'pm' : 'am'; hours = hours % 12; hours = hours ? hours : 12; // the hour '0' should be '12' minutes = minutes < 10 ? '0'+minutes : minutes; var strTime = hours + ':' + minutes + ' ' + ampm; return date.getMonth()+1 + "/" + date.getDate() + "/" + date.getFullYear() + " " + strTime; } var d = new Date(); var e = formatDate(d); alert(e); 

Et affichez aussi les heures am / pm et l'heure correcte.

N'oubliez pas d'utiliser la méthode getFullYear () et non getYear () car elle a été obsolète.

DEMO http://jsfiddle.net/a_incarnati/kqo10jLb/4/

Ne réinventez pas la roue. Il existe de nombreuses solutions Open Source et COTS qui existent déjà pour résoudre ce problème.

Jetez un oeil aux bibliothèques JavaScript suivantes:

  • Moment.js : [Source] | [Minifié]

  • Datejs : [Source] | [Alpha1.zip (1.6 Mo)]


Démonstration

J'ai écrit un one-liner en utilisant Moment.js ci-dessous. Vous pouvez consulter la démonstration ici: JSFiddle .

 moment('2014-08-20 15:30:00').format('MM/DD/YYYY h:mm a'); // 08/20/2014 3:30 pm 

Pour la partie date: (le mois est indexé 0 alors que les jours sont indexés 1)

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

Pour le temps que vous voudrez créer une fonction pour tester différentes situations et convertir.

J'espère que cela t'aides

Je ne pense pas que cela puisse être fait de manière cohérente avec des méthodes intégrées sur l'objet Date natif. La méthode toLocaleString se rapproche, mais si je me souviens bien, cela ne fonctionnera pas correctement dans IE <10. Si vous êtes en mesure d'utiliser une bibliothèque pour cette tâche, MomentJS est une bibliothèque vraiment étonnante; Et cela facilite le travail avec les dates et les heures. Sinon, je pense que vous devrez écrire une fonction de base pour vous donner le format que vous recherchez.

 function formatDate(date) { var year = date.getFullYear(), month = date.getMonth() + 1, // months are zero indexed day = date.getDate(), hour = date.getHours(), minute = date.getMinutes(), second = date.getSeconds(), hourFormatted = hour % 12 || 12, // hour returned in 24 hour format minuteFormatted = minute < 10 ? "0" + minute : minute, morning = hour < 12 ? "am" : "pm"; return month + "/" + day + "/" + year + " " + hourFormatted + ":" + minuteFormatted + morning; } 

Vous pouvez le faire:

 function formatAMPM(date) { // This is to display 12 hour format like you asked var hours = date.getHours(); var minutes = date.getMinutes(); var ampm = hours >= 12 ? 'pm' : 'am'; hours = hours % 12; hours = hours ? hours : 12; // the hour '0' should be '12' minutes = minutes < 10 ? '0'+minutes : minutes; var strTime = hours + ':' + minutes + ' ' + ampm; return strTime; } var myDate = new Date(); var displayDate = myDate.getMonth()+ '/' +myDate.getDate()+ '/' +myDate.getFullYear()+ ' ' +formatAMPM(myDate); console.log(displayDate); 

Violon