141 votes

Comment obtenir le jour de la semaine et le mois de l'année?

Je ne connais pas beaucoup de choses à propos de Javascript, et les autres questions que j'ai trouvé sont liés à des opérations sur les dates, et pas seulement obtenir l'information que j'en ai besoin.

Objectif

Je souhaite obtenir la date ci-dessous-formaté:

Imprimé le jeudi 27 janvier 2011 à 17:42:21

Jusqu'à présent, j'ai eu la suivante:

var now = new Date();
var h = now.getHours();
var m = now.getMinutes();
var s = now.getSeconds();

h = checkTime(h);
m = checkTime(m);
s = checkTime(s);

var prnDt = "Printed on Thursday, " + now.getDate() + " January " + now.getFullYear() + " at " + h + ":" + m + ":" s;

J'ai maintenant besoin de savoir comment obtenir le jour de la semaine et les mois de l'année (leurs noms).

Est-il un moyen simple de le faire, ou dois-je envisager d'utiliser des tableaux où je voudrais simplement l'index à la juste valeur à l'aide de now.getMonth() et now.getDay()?

269voto

user113716 Points 143363

Oui, vous aurez besoin de tableaux.

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

var day = days[ now.getDay() ];
var month = months[ now.getMonth() ];
 

Ou vous pouvez utiliser la bibliothèque date.js.


MODIFIER:

Si vous envisagez de les utiliser fréquemment, vous souhaiterez peut-être étendre Date.prototype à l'accessibilité.

 (function() {
    var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];

    var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];

    Date.prototype.getMonthName = function() {
        return months[ this.getMonth() ];
    };
    Date.prototype.getDayName = function() {
        return days[ this.getDay() ];
    };
})();

var now = new Date();

var day = now.getDayName();
var month = now.getMonthName();
 

5voto

lucke84 Points 1562

Malheureusement, l'objet Date en javascript renvoie des informations sur les mois uniquement au format numérique. La chose la plus rapide que vous puissiez faire est de créer un tableau de mois (ils ne sont pas censés changer fréquemment!) Et de créer une fonction qui renvoie le nom en fonction du nombre.

Quelque chose comme ça:

 function getMonthNameByMonthNumber(mm) { 
   var months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); 

   return months[mm]; 
}
 

Votre code devient alors:

 var prnDt = "Printed on Thursday, " + now.getDate() + " " + getMonthNameByMonthNumber(now.getMonth) + " "+  now.getFullYear() + " at " + h + ":" + m + ":" s;
 

3voto

Phrogz Points 112337

En utilisant http://phrogz.net/JS/FormatDateTime_JS.txt, vous pouvez simplement:

 var now = new Date;
var prnDt = now.customFormat( "Printed on #DDDD#, #D# #MMMM# #YYYY# at #hhh#:#mm#:#ss#" );
 

2voto

Dan Points 7078

Vous pouvez regarder datejs qui analyse la sortie de date localisée par exemple

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