Javascript 如何比较输入的两个日期?
有两个输入Javascript 如何比较输入的两个日期?,javascript,html,css,date,Javascript,Html,Css,Date,有两个输入 From: <input id="from" type="date" placeholder="dd/mm/yy"><br> To: <input id="to" type="date" placeholder="dd/mm/yy"> 发件人: 致: 我想比较这两个输入,以确保签出日期不早于签入日期。但如何比较呢?thx您可以使用valueAsDate,然后使用比较器: input1 = document.getElementById
From: <input id="from" type="date" placeholder="dd/mm/yy"><br>
To: <input id="to" type="date" placeholder="dd/mm/yy">
发件人:
致:
我想比较这两个输入,以确保签出日期不早于签入日期。但如何比较呢?thx您可以使用valueAsDate,然后使用比较器:
input1 = document.getElementById('from');
input2 = document.getElementById('to');
date1 = input1.valueAsDate;
date2 = input2.valueAsDate;
console.log(date1 < date2 ? 'valid' : 'invalid');
input1=document.getElementById('from');
input2=document.getElementById('to');
date1=input1.valueAsDate;
date2=input2.valueAsDate;
log(date1
您可以使用valueAsDate,然后使用比较器:
input1 = document.getElementById('from');
input2 = document.getElementById('to');
date1 = input1.valueAsDate;
date2 = input2.valueAsDate;
console.log(date1 < date2 ? 'valid' : 'invalid');
input1=document.getElementById('from');
input2=document.getElementById('to');
date1=input1.valueAsDate;
date2=input2.valueAsDate;
log(date1
如果希望日期格式为dd/mm/yy,可以使用以下函数将字符串转换为日期:
function compareDate(str){
// str format should be dd/mm/yyyy. Separator can be anything e.g. / or -. It wont effect
var dt = parseInt(str.substring(0,2));
var mon = parseInt(str.substring(3,5));
var yr = parseInt(str.substring(6,10));
var date = new Date(yr, mon-1, dt);
return date;
}
然后简单地从输入中获取值,并将它们作为日期进行比较
var input1 = compareDate(document.getElementById('from').value);
var input2 = compareDate(document.getElementById('to').value);
Date对象将执行您想要的操作—为每个日期构造一个对象,然后使用>,进行比较。如果希望日期格式为dd/mm/yy,可以使用以下函数将字符串转换为日期:
function compareDate(str){
// str format should be dd/mm/yyyy. Separator can be anything e.g. / or -. It wont effect
var dt = parseInt(str.substring(0,2));
var mon = parseInt(str.substring(3,5));
var yr = parseInt(str.substring(6,10));
var date = new Date(yr, mon-1, dt);
return date;
}
然后简单地从输入中获取值,并将它们作为日期进行比较
var input1 = compareDate(document.getElementById('from').value);
var input2 = compareDate(document.getElementById('to').value);
Date对象将执行您想要的操作—为每个日期构造一个对象,然后使用>,比较它们。您可以使用javascript获取输入值:
var fromValue = document.getElementById('from').value;
var toValue = document.getElementById('to').value;
然后使用javascript日期对象将其转换为日期:
var fromDate = new Date(fromValue);
var toDate = new Date(toValue);
并删除午夜后的时间:
fromDate.setHours(0,0,0,0);
toDate.setHours(0,0,0,0);
然后将fromDate
与toDate
进行比较:
if (fromDate === toDate) { ... }
您可以使用javascript获取输入值:
var fromValue = document.getElementById('from').value;
var toValue = document.getElementById('to').value;
然后使用javascript日期对象将其转换为日期:
var fromDate = new Date(fromValue);
var toDate = new Date(toValue);
并删除午夜后的时间:
fromDate.setHours(0,0,0,0);
toDate.setHours(0,0,0,0);
然后将fromDate
与toDate
进行比较:
if (fromDate === toDate) { ... }
您可以在
Moment.js
var today = new Date();
var diff = moment().diff(today, 'days');
console.log(diff); // 0
更多信息:您可以在
Moment.js
var today = new Date();
var diff = moment().diff(today, 'days');
console.log(diff); // 0
更多信息:我会这样做 HTML
函数compareDates(){
//获取元素中的文本
var from=document.getElementById('from').textContent;
var to=document.getElementById('to').textContent;
//生成一个数组,其中第一个元素是年,第二个元素是月,第三个元素是日
var splitFrom=from.split('/');
var splitTo=to.split('/');
//从数组中创建日期对象
var fromDate=Date.parse(splitFrom[0],splitFrom[1]-1,splitFrom[2]);
var toDate=Date.parse(splitTo[0],splitTo[1]-1,splitTo[2]);
//返回比较结果
从日期返回<到日期;
}
比较
让我知道你进展如何 我就是这样做的 HTML
函数compareDates(){
//获取元素中的文本
var from=document.getElementById('from').textContent;
var to=document.getElementById('to').textContent;
//生成一个数组,其中第一个元素是年,第二个元素是月,第三个元素是日
var splitFrom=from.split('/');
var splitTo=to.split('/');
//从数组中创建日期对象
var fromDate=Date.parse(splitFrom[0],splitFrom[1]-1,splitFrom[2]);
var toDate=Date.parse(splitTo[0],splitTo[1]-1,splitTo[2]);
//返回比较结果
从日期返回<到日期;
}
比较
让我知道你进展如何 html5日期输入的格式应始终为
yyyy-MM-dd
,如果您试图设置一个具有dd/MM/yy
格式的输入值,则会得到一个无效值。只是想更改占位符…@并不是所有的实现都支持日期输入。html5日期输入的格式应该并且应该始终是yyy-MM-dd
如果您试图设置一个格式为dd/MM/yy
的输入值,那么您将得到一个无效值。只是想更改占位符…@并非所有实现都支持日期输入。可能尝试使用input.valueAsDate
?@对valueAsDate的浏览器支持是…?可能尝试使用input.valueAsDate
?@对valueAsDate的浏览器支持是…?可能尝试使用input.valueAsDate
?当然,祝你好运。如果您想删除几行代码,请不要忘记包含@unfinish suggestion。也许可以尝试使用input.valueAsDate
?当然,祝您好运。如果您想删除几行代码,请不要忘记包含@unfinal suggestion。这里有一些错误:Date.parse不是构造函数,只接受一个参数,new Date。parse(…)
应该是new Date(…)
。此外,月份是零索引的,因此新日期(splitFrom[0]、splitFrom[1]-1、splitFrom[2])
。答案应该解释问题以及如何解决问题,而不仅仅是发布代码。这里有一些错误:Date.parse不是构造函数,只接受一个参数,new Date。parse(…)
应该是new Date(…)
。此外,月份是零索引的,因此新日期(splitFrom[0]、splitFrom[1]-1、splitFrom[2])
。答案应该解释问题以及如何解决问题,而不仅仅是邮政编码。