Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquerymore&;少于_Javascript_Jquery - Fatal编程技术网

Javascript jquerymore&;少于

Javascript jquerymore&;少于,javascript,jquery,Javascript,Jquery,如果该值等于或大于最小值且小于最大设置值,我将尝试显示警报。如果我将dob设置为'01-09-1996',警报仍然会触发?有人能指出我做错了什么吗?多谢各位 $(function() { $('#date1 input').autotab_magic().autotab_filter('numeric'); $(".eligibilityform").submit(function(e) { // Input Values var day =

如果该值等于或大于最小值且小于最大设置值,我将尝试显示警报。如果我将
dob
设置为'01-09-1996',警报仍然会触发?有人能指出我做错了什么吗?多谢各位

$(function() {
    $('#date1 input').autotab_magic().autotab_filter('numeric');

    $(".eligibilityform").submit(function(e) {

        // Input Values
        var day = $("#day").val();
        var month = $("#month").val();
        var year = $("#year").val();

        // DOB Value
        var dob = new Date(day + '-' + month + '-' + year);

        // DOB Rules
        var mindob = new Date("01-09-1996");
        var maxdob = new Date("31-08-2000");

        // DOB Eligibility
        if (dob >= mindob && dob <= maxdob) {
            alert("Welcome");

            // Season Eligibility
            var spring2015min = new Date("01-09-1997");
            var spring2015max = new Date("31-08-1998");
            if (dob >= spring2015min && dob <= spring2015max) {
                alert("Spring 2015");
            }
            var summer2015min = new Date("01-09-1997");
            var summer2015max = new Date("31-08-1999");
            if (dob >= summer2015min && dob <= summer2015max) {
                alert("Summer 2015");
            }
            var autumn2015min = new Date("01-01-1998");
            var autumn2015max = new Date("31-08-1999");
            if (dob >= autumn2015min && dob <= autumn2015max) {
                alert("Autumn 2015");
            }
            var spring2016min = new Date("01-09-1998");
            var spring2016max = new Date("31-08-1999");
            if (dob >= spring2016min && dob <= spring2016max) {
                alert("Spring 2016");
            }
            var summer2016min = new Date("01-09-1998");
            var summer2016max = new Date("31-08-2000");
            if (dob >= summer2016min && dob <= summer2016max) {
                alert("Summer 2016");
            }
            var autumn2016min = new Date("01-01-1998");
            var autumn2016max = new Date("31-08-2000");
            if (dob >= autumn2016min && dob <= autumn2016max) {
                alert("Autumn 2016");
            }

        } else {
            alert("Sorry");
        }

        return false;
    });
});
$(函数(){
$('date1 input').autotab_magic().autotab_filter('numeric');
$(“.eligibilityform”).submit(函数(e){
//输入值
var day=$(“#day”).val();
var month=$(“#month”).val();
var year=$(“#year”).val();
//DOB值
var dob=新日期(日+'-'+月+'-'+年);
//DOB规则
var mindob=新日期(“01-09-1996”);
var maxdob=新日期(“2000年8月31日”);
//DOB资格

如果(dob>=mindob&&dob=spring2015min&&dob=summer2015min&&dob=autumn2015min&&dob=spring2016min&&dob=summer2016min&&dob=Autumn2016 min&&dob=mindob&&dob=spring2015min&&dob=summer2015min&&dob=autumn2016min&&dob=summer2016min&&dob=Autumn2016 min&&dob&dob=summer2015min&&dob这是因为您是MPTTETIng要使用
=
=spring2015min&&dob问题是,您不能用这种方式比较日期,只能使用整数。我会使用类似以下内容:

if( (new Date(dob).getTime() >= new Date(spring2015min).getTime()))

您正在执行的当前测试是字符串检查,因此它将测试实际字符串是否相等或其等效数字字符是否大于其数值。您应该使用
new Date()
然后检查日期对象

您正在使用字符串比较。转换为日期并使用日期比较。即使如此,此特定字符串比较也不会成功。“01-09-1996”(字符串)小于“01-09-1997”(字符串),并且警报不会在此处触发:。如果我将
dob
更改为“01-09-1998”,则会触发警报。你确定这些都是使用中的精确值,没有空格等吗?我尝试过,但即使dat在两个设定日期之间,警报也不起作用?@adamkwadsworth请查看我的更新。现在可以了。我已经完成了,但仍然没有任何效果?我再次更新了上面的代码以符合你的建议…@adamkwadsworth查看jsiddle link,您是否确保使用了正确的日期格式?
日期(“MM dd yyyy”)
新日期(“31-08-1998”);
不会转换为
日期,因为没有31个月。我已经更新了新的日期,这似乎没有改变任何事情,我已经准备了一个plunkr,这样你就可以看到我的问题在行动中-我已经尝试过了,但运气不好,我已经更新了上面的代码。如果还有什么你可以建议的话,这将大有帮助您仍在使用字符串进行检查。您需要使用新日期(“01-09-1998”)例如,创建一个日期对象,然后将该日期对象与另一个日期对象进行比较,以获得日期比较,目前您正在获得字符串比较,这将为您提供与您希望的完全不同的结果。您可以查看并确保所附内容是正确的,因为它在我这边不起作用?这也不适用于我的代码,我已经更新了我的原始代码以显示发生了什么。
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);
  var dob = new Date("09-01-1996");
  var spring2015min = new Date("09-01-1997");
  var spring2015max = new Date("08-31-1998");
  if (dob >= spring2015min && dob <= spring2015max){
    alert("Spring 2015");
  }
if( (new Date(dob).getTime() >= new Date(spring2015min).getTime()))