使用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
失败,那么代码去哪里了?