我正在比较两个日期,一个是当前日期,另一个是从输入日期类型中选择的。我想如果所选日期小于当前日期返回true,但它不返回true;
function check_start_date(obj){
var value= obj.value;
var curr_date= new Date();
var selected_date= new Date(value);
curr_date= trim_time(curr_date);
if(selected_date < curr_date){
alert("less");
return true;
}
else{
return false;
}
}
答案 0 :(得分:2)
您的trim_time
函数没有删除毫秒数,因此修剪后的值curr_date
将略大于selected_date
,除非当前时间恰好落在第二个上(毫秒为0)
答案 1 :(得分:1)
我改变了我的trim_time(obj)功能,它确实有效:)
function trim_time(obj){
var obj1= new Date(obj.getFullYear(),obj.getMonth(),obj.getDate(),0,0,0);
return obj1;
}
答案 2 :(得分:0)
我的解决方案是使用Number()
功能。然后比较两个结果数字。
var curr_date = Number(new Date());
...
var selected_date = Number(new Date(value));
...
然后比较等。没有测试顺便说一句,只是一些想法。
MDN说明:Number() Function
答案 3 :(得分:0)
您需要将日期转换为数字(以进行简单比较)。我的解决方案是:
function check_start_date( obj ) {
var value = new Date( obj.value ) * 1; //--- convert to number
var curr_date = new Date();
curr_date = new Date( curr_date.getFullYear(), curr_date.getMonth(), curr_date.getDate()) * 1; //--- remove time from the date
if( value < curr_ date ) {
alert( 'less' );
return true;
} else {
return false;
}
}