Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.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 如何比较输入的两个日期?_Javascript_Html_Css_Date - Fatal编程技术网

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])
。答案应该解释问题以及如何解决问题,而不仅仅是邮政编码。