10
votes

Comparez le mois et année

Bon après-midi dans mon fuseau horaire.

Je veux comparer deux dates, l'un d'entre eux est inséré par l'utilisateur et l'autre est le présent. Extrait de code: xxx

Ceci renvoie true, je pense que sous la capuche Les deux objets de date sont transformés en millisecondes, puis comparés, et si c'est ainsi l'objet "Aujourd'hui". est plus grosse à cause des heures et des minutes. Ce que je veux faire, c'est comparer les dates juste au mois de la journée et année.Quelle est la meilleure approche? Créez un nouvel objet de date, puis réinitialisez les minutes et les millisecondes à zéro avant la comparaison? Ou extraire le jour le mois et l'année des deux dates objet et faire la comparaison? Y a-t-il une meilleure approche?

Merci d'avance Avec les meilleures salutations. Bonne année


1 commentaires

Plus d'informations à la date La conversion peut être trouvée à l'adresse suivante: - Stackoverflow. com / questions / 492994 / ...


3 Réponses :


27
votes

Définir la partie TIME de votre Date to Zeros .

var d = new Date();
d.setHours(0,0,0,0);


2 commentaires

Solution géniale


Laisser aujourd'hui = nouvelle date (nouvelle date (). Sethours (0, 0, 0, 0)) - Cycles supplémentaires mais une doublure pour la lisibilité.



0
votes

Étant donné que c'est dans le format AAAA-MM-DD, vous pouvez simplement construire l'objet AAAA-MM-DD actuel à partir d'objet de date et faire une comparaison de chaînes ordinaire:

var currentDate = new Date();
var year = currentDate.getFullYear();
var month = currentDate.getMonth()+1;
if (month < 10) month = "0" + month;
var day = currentDate.getDate();
if (day < 10) day = "0" + day;
currentDate = year + "-" + month + "-" + day;

var dateString = "2012-01-03"
var compareDates =  dateString < currentDate ? true : false;
document.write(compareDates);


0 commentaires

0
votes

un exemple de production - prêt à la production basé sur réponse acceptée

  1. ajoutez la fonction suivante à votre JavaScript

    date.pototype.removeTimefromdate = fonction () { var nouvelledate = nouvelle date (this); NEWDATE.SETHURES (0, 0, 0, 0); retournedate; }

  2. invoquer quand vous souhaitez comparer

    firstdate.removeTimefromdate ()


0 commentaires