任何人都可以帮我找到解决方案
我只想比较dd / mm / yyyy格式的两个日期。
function compareDate(dt1 , dt2 , formatString){var returnVal = 2;
var dt1Parts;
var dt2Parts;
var dt1dd;
var dt1mm;
var dt1yyyy;
var dt2dd;
var dt2mm;
var dt2yyyy;
if(formatString == 'dd/mm/yyyy'){
dt1Parts = dt1.split('/');
dt2Parts = dt2.split('/');
dt1dd = parseInt(dt1Parts[0]);
dt1mm = parseInt(dt1Parts[1]);
dt1yyyy = parseInt(dt1Parts[2]);
dt2dd = parseInt(dt2Parts[0]);
dt2mm = parseInt(dt2Parts[1]);
dt2yyyy = parseInt(dt2Parts[2]);
}
else if(formatString == 'dd-mm-yyyy'){
dt1Parts = dt1.split('-');
dt2Parts = dt2.split('-');
dt1dd = parseInt(dt1Parts[0]);
dt1mm = parseInt(dt1Parts[1]);
dt1yyyy = parseInt(dt1Parts[2]);
dt2dd = parseInt(dt2Parts[0]);
dt2mm = parseInt(dt2Parts[1]);
dt2yyyy = parseInt(dt2Parts[2]);
}else{
alert(formatString+' format is not supported.');
}
if(dt1yyyy == dt2yyyy && dt1mm == dt2mm && dt1dd == dt2dd){
returnVal = 0;
}
else if(dt1yyyy > dt2yyyy){
returnVal = 1 ;
}else if(dt1yyyy == dt2yyyy ){
if(dt1mm > dt2mm){
returnVal = 1;
}else if(dt1mm == dt2mm){
if(dt1dd > dt2dd){
returnVal = 1;
}else{
returnVal = -1;
}
}else{
returnVal = -1;
}
}else{
returnVal = -1;
}
return returnVal;
}
提前致谢, 希尔帕
答案 0 :(得分:4)
将字符串反转为yyyy / mm / dd,或将它们转换为数字或Date对象。
仅用于比较的最简单方法是ASCII顺序。使用类似的东西进行反转:
function invert(date) {
return date.split(/[/-]/).reverse().join("")
}
function compareDates(date1, date2) {
return invert(date1).localeCompare(invert(date2));
}
答案 1 :(得分:2)
以下是将字符串格式转换为日期的方法:
var myString = "17/07/1979",
correctFormat = myString.replace(/(\d+)\/(\d+)\/(\d+)/, "$3/$2/$1"),
myDate = new Date(correctFormat);
答案 2 :(得分:1)
不知道您正在使用哪种语言或类库:
方法1:求你的字符串为yyyymmdd并将do字符串进行比较。 方法2:将yyyy mm和dd填入整数的高位,中位和低位并进行比较。
答案 3 :(得分:0)
试试这个
var date1=new Date('your date1 string');
var date2=new Date('your date2 string');
var difference=new Date(date1.getTime()-date2.getTime());
答案 4 :(得分:0)
最简单的方法可能是从输入字符串创建2个javascript Date对象。您可以通过将输入切换为日,月和年来实现这一目标。你可以使用'substring'函数。
然后你可以这样做:
var firstDate = new Date(year1, month1, day1);
var secondDate = new Date(year2, month2, day2);
一旦有2个日期对象,就可以使用普通的比较运算符:
if (firstDate > secondDate)
// do something
else
...
答案 5 :(得分:0)
if ($.datepicker.parseDate('dd/mm/yy', fDate) > $.datepicker.parseDate('dd/mm/yy', tDate)) {
//do something
}
你可以比较两个日期。这里我比较日期大于日期
试试这个