嗯,我知道这个问题在互联网上被问过一千次,但我是一个菜鸟,并且不太了解Javascript功能。我想比较两个日期。 输入格式为=" 2011-jan-21"
这是我的想法,请帮忙!我真的很感激,因为我需要紧急工作。
function compareDates() {
var startDate=document.getElementById("startDate").value;
var endDate = document.getElementById("endDate").value;
months = {'jan': '01', 'feb': '02', 'mar': '03', 'apr': '04', 'may': '05',
'jun': '06', 'jul': '07', 'aug': '08', 'sep': '09', 'oct': '10', 'nov': '11',
'dec': '12'};
split = startDate.split('-');
var newStartDate = [split[2], months[split[1]], split[0]].join(',');
split = endDate.split('-');
var newEndDate = [split[2], months[split[1]], split[0]].join(',');
var myDate=new Date();
myDate.setFullYear(startDate);
console.log(newStartDate);
var myDateEnd=new Date();
myDateEnd.setFullYear(endDate);
if (myDate < myDateEnd) {
alert ("Error !");
}
}
<form method="POST" id="myForm" onsubmit="compareDates()">
<input id="startDate" />
<input id="endDate" />
<input type="Submit" />
</form>
答案 0 :(得分:1)
只需将字符串传递给Date
构造函数即可。 很多更容易。
var startDate = new Date(document.getElementById("startDate").value);
var endDate = new Date(document.getElementById("endDate").value);
现在,您可以随意使用两个full-fledged Date
instances。
function compare()
{
var startDate = new Date(document.getElementById("startDate").value);
var endDate = new Date(document.getElementById("endDate").value);
if (startDate.getTime() > endDate.getTime())
{
alert ("Error !");
}
}
答案 1 :(得分:0)
如果您正在尝试对它们进行比较,我甚至不会将它们编码为日期,因为年,月和日字段已经处于最重要到最不重要的顺序。如果您可以解析年份,月份(以数字形式; 0-origin或1-origin为OK,只要您保持一致),并且按照给定的顺序排列日期,则可以计算整数{{ 1}}。
鉴于这两个日期都是如此转换,您可以按照预期使用正常的相等和排序运算符(==,&lt;,&gt; =等)。
答案 2 :(得分:0)
您可以使用:
if (myDate.getTime() < myDateEnd.getTime())
{
alert ("Error !");
}