18

jQuery datepickerを使用して、今日の日付と選択した日付の違いを見つけようとしましたが、問題ではなく問題が発生しています...完全に見つけることができませんでした...

'datepickerのonSelectイベント'でこれを実行しようとしました

質問:jQuery Datepicjerを使用して選択した日付が今日の日付から30日を超えているかどうかを確認するにはどうすればよいですか?

どんな助けでもありがたいです....!! 注:ライブラリは使用しないでください。jQueryのみを使用してこれを解決する必要があります。

4

3 に答える 3

50

今から 30 日後のタイムスタンプを取得します。

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

そのタイムスタンプを選択した日付のタイムスタンプと比較します。

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.
}
于 2013-01-29T11:22:27.600 に答える
4

私はあなたのために 1 つのサンプルを作成しました。

 <!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>

と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');
  }
});

このコードはオンラインで確認できます

于 2013-01-29T11:45:24.420 に答える
3

これを試して:

$('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..
        }

    },
});

デモ: http://jsfiddle.net/jeY7S/

于 2013-01-29T11:26:48.407 に答える