Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.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
使用HTML和Javascript比较字符串格式的日期与日期格式的当前日期_Javascript_Html - Fatal编程技术网

使用HTML和Javascript比较字符串格式的日期与日期格式的当前日期

使用HTML和Javascript比较字符串格式的日期与日期格式的当前日期,javascript,html,Javascript,Html,函数validateExpDate(){ var expdate=“24-10-2018”; 变量字段=expdate.split('-'); var date=parseInt(字段[0]); var month=parseInt(字段[1]); var year=parseInt(字段[2]); var today=新日期(); var dd=parseInt(today.getDate()); var mm=parseInt(today.getMonth()+1);//一月是0! var


函数validateExpDate(){
var expdate=“24-10-2018”;
变量字段=expdate.split('-');
var date=parseInt(字段[0]);
var month=parseInt(字段[1]);
var year=parseInt(字段[2]);
var today=新日期();
var dd=parseInt(today.getDate());
var mm=parseInt(today.getMonth()+1);//一月是0!
var yyyy=parseInt(today.getFullYear());
如果(年>=yyyy){
如果(月>=毫米){
如果(日期>日){
警报(“有效到期日”);
}
}	
}否则{
警报('输入的失效日期无效!');
}
}

您的
else
指令属于外部
if
语句。在您的例子中,
if
语句返回
true
(2018>=2018),因此程序跳转到第一个if子句中的代码。从那时起,程序将无法访问
else
语句

您正在寻找类似以下内容:

<html>
<head>
<script lang="Javascript">
function validateExpDate(){
    var expdate ="24-10-2018";
    var fields = expdate.split('-');
    var date = parseInt(fields[0]);
    var month = parseInt(fields[1]);
    var year = parseInt(fields[2]);
    var today = new Date();
    var dd = parseInt(today.getDate());
    var mm = parseInt(today.getMonth()+1); //January is 0!
    var yyyy = parseInt(today.getFullYear());
    if(year >= yyyy && month >= mm && date > dd)
    {
        alert('Valid Expiry Date');
    }
    else{
    alert('Invalid Expiry Date Entered!');
    }
}
</script>
</head>
<body onload="validateExpDate()">
</body>
</html>

函数validateExpDate(){
var expdate=“24-10-2018”;
变量字段=expdate.split('-');
var date=parseInt(字段[0]);
var month=parseInt(字段[1]);
var year=parseInt(字段[2]);
var today=新日期();
var dd=parseInt(today.getDate());
var mm=parseInt(today.getMonth()+1);//一月是0!
var yyyy=parseInt(today.getFullYear());
如果(年>=年和月>=月和日>日)
{
警报(“有效到期日”);
}
否则{
警报('输入的失效日期无效!');
}
}
在一个if子句中包含所有条件。通过使用AND运算符,此语句仅在所有条件均为true时返回true。如果其中一个为false,程序将进入else子句

还可以在javascript中直接比较两个日期。 只是少了一点代码

<html>
    <head>
    <script lang="Javascript">
    function validateExpDate(){
        var expdate = new Date('2018-10-24');
        var today = new Date();
        if(expdate > today) {
            alert('Valid Expiry Date');
        }
        else {
            alert('Invalid Expiry Date Entered!');
        }
    }
    </script>
    </head>
    <body onload="validateExpDate()">
    </body>
</html>

函数validateExpDate(){
var expdate=新日期('2018-10-24');
var today=新日期();
如果(expdate>今天){
警报(“有效到期日”);
}
否则{
警报('输入的失效日期无效!');
}
}

您没有处理日期和月份的
其他
条件。您可以像下面这样编写代码,也可以在第一个
IF
循环中使用
&&
,如果这适合您的话

if (year >= yyyy) {
                if (month >= mm) {
                    if (date > dd) {
                        alert('Valid Expiry Date');
                    } else {
                        alert('Invalid Expiry Date Entered!');
                    }
                }
                else {
                    alert('Invalid Expiry Date Entered!');
                }
            } else {
                alert('Invalid Expiry Date Entered!');
            }

谢谢各位。我发现问题出在卷曲的胸罩上。谢谢你的回复。非常感谢。

调试提示-您可以将
console.log(年、年、月、月、日、日)
放在
if
之前,查看要比较的值。您还可以使用调试器查看它们,并逐步执行,以查看是否有错误。所有值都会出现。只是比较没有发生,而且令人沮丧。比较正在发生。想想看,如果
month>=mm
date>dd
失败,那么代码去哪里了?