Javascript: calculer le nombre de jours dans le mois pour une année donnée
J'ai une page HTML avec 3 listes déroulantes pour le mois, le jour et l'année et je me demandais si il y avait un moyen pour remplir le déroulant mois correctement, selon le mois et l'année.
Je n'ai pas fait ça avant, sur le côté client, mais il semble que beaucoup de contrôles comme le DatePicker de jQuery font que derrière les coulisses.
Double Possible: le Repeuplement de dates, sélectionnez les cases
Grâce Box9! C'est effectivement ce que je cherchais.
Grâce Box9! C'est effectivement ce que je cherchais.
OriginalL'auteur Abe | 2011-02-03
Vous devez vous connecter pour publier un commentaire.
Vous pouvez jouer avec les objets date:
Arithmétique avec
Date
objets donne un certain nombre de millisecondes.Ce sera même travail pour le mois de décembre; la Date de constructeur gère hors de la portée des arguments en l'enroulant autour de.
Noter que
month
est basé sur zéro (elle doit être comprise entre0
et11
)J'ai enveloppé comme
var DaysInMonth = function(year, month) { /* SLAK's code here */; return monthLength;};
et ajouta d'un prototype de méthode à ce JourDate.prototype.daysInMonth = function() { var mlen=DaysInMonth(this.getFullYear(), this.getMonth()); return mlen; };
pour que je puisse appeler(new DateTime(2000, 1)).daysInMonth();
En mars 2014, renvoie 30.958333333333332 pour une raison quelconque.
Pour éviter des nombres décimaux, ajouter
Math.round
à monthLength:monthLength = Math.round( (monthEnd - monthStart) / (1000 * 60 * 60 * 24) );
Quelques mois ont 1 heure de plus ou une de moins de l'heure en raison de l'heure avancée. Le
(1000 * 60 * 60 * 24)
partie de l'équation ne tient pas compte de cet écart. Arrondissement de l'aide.OriginalL'auteur
Autant que je sache, il n'y a pas (neat) fonction intégrée pour que. J'ai écrit cette fois:
Cela devrait être la réponse! Génial!
OriginalL'auteur
OriginalL'auteur
Copie à partir d'un autre poste: Obtenir le nombre de jours dans un mois spécifié à l'aide de javascript?
Tous les crédits à @c_harm, vraiment excellente solution
OriginalL'auteur
Voici le paquebot.
En supposant que vous dites janvier=1, février=2 etc..(normal)
Voici l'année bissextile exemple:
OriginalL'auteur
Je suis en utilisant cette approche dans mon projet actuel, et a constaté que j'avais besoin de corriger les erreurs arrondi. Donc, au lieu d'utiliser monthLength dans mon code, j'ai eu à utiliser ce lieu:
Par exemple si j'ai un objet dans lequel je suis le stockage d'un texte champ de date, il peut ressembler à ceci:
OriginalL'auteur
Vous pouvez réellement utiliser ce:
var curdate = new Date();
DaysMonth = 32 - new Date(curdate.getYear(), curdate.getMonth(), 32).getDate();
😉
OriginalL'auteur
OriginalL'auteur