我有2个HTML日期选择器。一旦用户离开第二个日期选择器dateInputone
,我需要检查天气两个值是否相同。
我需要检查的第二件事是用户在日期选择器中输入的天气时间,包含分钟值为零。如果没有,我需要剪切用户输入的分钟并将其附加零。
以下是我的HTML代码:
<input id="dateInputone" name="dateipone" type="datetime-local" step="600">
<input id="dateInputtwo" name="dateiptwo" type="datetime-local" step="600" onblur="validate_time(this.value)">
以下是我的JavaScript代码,用于检查天气分钟是否以 ZERO 结尾。
function validate_time(min)
{
var allowed_values = new Array("00");
var minutes = min.split(':').pop();
for(var i=0; i <= allowed_values.length; i++)
{
if(allowed_values[i] == minutes)
{
return true;
}
else
{
return minutes[0] + ":00";
}
}
}
以下JavaScript代码检查天气日期是否相同
var date1 = document.getElementById("dateInputone").value;
var date2 = document.getElementById("dateInpuTwo").value;
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
alert(diffDays);
如何合并这个脚本代码,以便我可以在一个函数中检查日期和分钟?
答案 0 :(得分:1)
var date1El = document.getElementById("dateInputone");
var date2El = document.getElementById("dateInputtwo");
function validate_time(d)
{
var allowed_values = new Array("00");
var minutes = d.split(':');
for(var i=0; i <= allowed_values.length; i++)
{
if(allowed_values[i] == minutes[1])
{
return minutes[0]+':'+allowed_values[i];
}
else
{
return minutes[0]+":00";
}
}
}
function blurred(){
var date1 = new Date(validate_time(date1El.value))
var date2 = new Date(validate_time(date2El.value))
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
alert(diffDays);
}
&#13;
<input id="dateInputone" name="dateipone" type="datetime-local" step="600">
<input id="dateInputtwo" name="dateiptwo" type="datetime-local" step="600" onblur="blurred()">
&#13;
这应该有用,但是,有一个问题 - 如果您想添加更多&#34; allowed_values&#34;,此代码无法正常工作 - 您需要返回..:00仅在for循环之后。 另一方面,如果您只需要删除分钟(替换为00),那么它将更容易添加
var date1 = new Date(vdate1El.value).setMinutes(0)
单一功能?没问题:
function validate_time()
{
var date1El = document.getElementById("dateInputone");
var date2El = document.getElementById("dateInputtwo");
var dates = [date1El.value,date2El.value];
dates = dates.map((d)=>{
console.log(d,'ddd')
var allowed_values = new Array("00");
var minutes = d.split(':');
console.log('mmm',minutes)
for(var i=0; i <= allowed_values.length; i++)
{
if(allowed_values[i] == minutes[1])
{
return minutes[0]+':'+allowed_values[i];
}
else
{
return minutes[0]+":00";
}
}
})
var date1 = new Date(dates[0])
var date2 = new Date(dates[1])
console.log(dates,date1,date2)
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
alert(diffDays);
}
&#13;
<input id="dateInputone" name="dateipone" type="datetime-local" step="600">
<input id="dateInputtwo" name="dateiptwo" type="datetime-local" step="600" onblur="validate_time()">
&#13;