342 votes

Obtenir la première et la dernière date du mois en cours avec JavaScript ou jQuery

Comme le titre l'indique, je suis coincé pour trouver un moyen d'obtenir la première et la dernière date du mois en cours avec JavaScript ou jQuery, et de les formater comme suit :

Par exemple, pour le mois de novembre, il s'agit de :

var firstdate = '11/01/2012';
var lastdate = '11/30/2012';

4 votes

Ne rendez pas les choses difficiles, le dernier jour d'un mois est le jour -1 du 1er jour du mois suivant. C'était bien : stackoverflow.com/a/1924846/168703

944voto

RobG Points 41170

Très simple, aucune bibliothèque n'est nécessaire :

var date = new Date();
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);

ou vous pourriez préférer :

var date = new Date(), y = date.getFullYear(), m = date.getMonth();
var firstDay = new Date(y, m, 1);
var lastDay = new Date(y, m + 1, 0);

EDIT

Certains navigateurs considèrent que les années à deux chiffres se situent au 20e siècle, de sorte que :

new Date(14, 0, 1);

donne le 1er janvier 1914. Pour éviter cela, créez une Date puis définissez ses valeurs en utilisant setFullYear :

var date = new Date();
date.setFullYear(14, 0, 1); // 1 January, 14

2 votes

En essayant avec le code dans la réponse acceptée, j'obtiens firstDay comme "Fri Aug 01 2014 00:00:00 GMT+0800 (SGT)" et lastDay comme "Sun Aug 31 2014 00:00:00 GMT+0800 (SGT)" pour le mois en cours ce qui n'est pas une réponse correcte. Quelque chose a-t-il changé ?

1 votes

@Kush quelle réponse attendez-vous exactement ?

2 votes

Comme demandé dans la question par @moozy, je cherche la même chose : var firstdate = '11/01/2012' ; var lastdate = '11/30/2012' ;

20voto

Moozy Points 400

Je l'ai réparé avec Datejs

C'est l'alerte le premier jour :

var fd = Date.today().clearTime().moveToFirstDayOfMonth();
var firstday = fd.toString("MM/dd/yyyy");
alert(firstday);

C'est pour le dernier jour :

var ld = Date.today().clearTime().moveToLastDayOfMonth();
var lastday = ld.toString("MM/dd/yyyy");
alert(lastday);

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