web-dev-qa-db-fra.com

Date de contrôle supérieure à 30 jours à compter de la date d'aujourd'hui

J'utilise jQuery datepicker et j'ai essayé de déterminer la différence entre la date d'aujourd'hui et la date sélectionnée, mais j'ai des problèmes ... plutôt que des problèmes ... Je n'ai pas réussi à le trouver parfaitement ... 

J'ai essayé de le faire sur 'l'événement onSelect de datepicker'

Question: Comment vérifier si la date sélectionnée à l’aide de jQuery Datepicjer est supérieure à 30 jours à compter de la date du jour?

Toute aide sera appréciée .... !! Note: ne voulez utiliser aucune bibliothèque, je dois résoudre ce problème en utilisant seulement jQuery.

13
Pratik Bhatt

Obtenez l'horodatage dans 30 jours à compter de maintenant:

var timestamp = new Date().getTime() + (30 * 24 * 60 * 60 * 1000)
//                                      day hour  min  sec  msec

Comparez cet horodatage avec l'horodatage pour la date sélectionnée.

if (timestamp > selectedTimestamp) {
    // The selected time is less than 30 days from now
}
else if (timestamp < selectedTimestamp) {
    // The selected time is more than 30 days from now
}
else {
    // -Exact- same timestamps.
}
33
Cerbrus

J'ai créé un échantillon pour vous.

 <!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>jQuery UI Datepicker - Default functionality</title>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
  <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
  <script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css" />
  <script>
  $(function() {
    $( "#datepicker" ).datepicker();
  });
  </script>
</head>
<body>

Date: <input type="text" id="thedate"/>
<div id="checkDate">Check Date</div>
</body>
</html>

et Js

$('#thedate').datepicker();

$('#checkDate').bind('click', function() {
  var selectedDate = $('#thedate').datepicker('getDate');
  var today = new Date(); 
  var targetDate= new Date();
  targetDate.setDate(today.getDate()+ 30);
  targetDate.setHours(0);
  targetDate.setMinutes(0);
  targetDate.setSeconds(0);

  if (Date.parse(targetDate ) >Date.parse(selectedDate)) {
    alert('Within Date limits');
  } else {
    alert('not Within Date limits');
  }
});

Vous pouvez vérifier ce code en ligne Ici

3
Sandeep

Essaye ça:

$('input').datepicker({
    onSelect: function()
    {
        var date = $(this).datepicker('getDate');
        var today = new Date();
        if((new Date(today.getFullYear(), today.getMonth(), today.getDate()+30))>date)
        {
             //Do somthing here..
        }

    },
});

démo: http://jsfiddle.net/jeY7S/

2
Harish Anchu