如何检查所选日期是否在30天内?

时间:2011-06-21 16:54:41

标签: javascript jquery validation jquery-validate

我正在尝试验证所选日期是否在今天的30天之内。我怎么能在jQuery中做到这一点?这是我到目前为止所做的:

<input type="text" id="txtMaxDate" />
<input type="submit" onclick="validateMaxDate();" />

<script type="text/javascript">
    function validateMaxDate() {
    // format of sendDate is 05/25/2011
    var sendDate = $("#txtMaxDate").val();
    var fullDate = new Date()
    var currentDate = fullDate.getMonth()+1 + "/" + fullDate.getDate() + "/" + fullDate.getFullYear();
    var newSendDate = sendDate.UTC();
    alert(newsendDate);


    }
</script>

3 个答案:

答案 0 :(得分:1)

如果目标日期先前已被设定为未来日期,则此方法应有效。

var today = new Date();
targetDate.setDate(targetDate.getDate() - 30);

if(targetDate <= today){
  alert('target date is less than 30 days out');
}

答案 1 :(得分:0)

日期计算部分不是jQuery,而是原生JavaScript。

您的时间戳正确。在我看来,最直接的方法是通过执行以下操作来比较时间戳:

  • 从maxDate
  • 中减去currentDate
  • 查看差异是否少于30天

查看简单示例 - http://jsfiddle.net/6YQHQ/

答案 2 :(得分:0)

var oneDay = 1000*60*60*24; \\one day has these many milli seconds
var diff   = (today.getTime() - sendDate.getTime())/oneDay \\send date and today are date objects
if(Math.abs(diff)<30){alert("with in 30 days");