我有以下内容:
var fit_start_time = $("#fit_start_time").val(); //2013-09-5
var fit_end_time = $("#fit_end_time").val(); //2013-09-10
if(Date.parse(fit_start_time)>=Date.parse(fit_end_time)){
alert("Please select a different End Date.");
}
上述代码不起作用。对于上述解决方案还有其他解决方案吗?
根据{{3}}格式化日期也适合我。
答案 0 :(得分:44)
这很简单:
if(new Date(fit_start_time) <= new Date(fit_end_time))
{//compare end <=, not >=
//your code here
}
比较2个Date
个实例会很好用。它只是隐式调用valueOf
,将Date
实例强制转换为整数,可以使用所有比较运算符进行比较。好吧,要100%准确:Date
实例将被强制转换为Number
类型,因为JS不知道整数或浮点数,它们都是签名的64位IEEE 754双精度浮点数号。
答案 1 :(得分:3)
在您的示例中,fit_start_time
不晚于fit_end_time
。
反过来试试:
var fit_start_time = $("#fit_start_time").val(); //2013-09-5
var fit_end_time = $("#fit_end_time").val(); //2013-09-10
if(Date.parse(fit_start_time) <= Date.parse(fit_end_time)){
alert("Please select a different End Date.");
}
<强>更新强>
您的代码暗示您希望查看包含当前变量的alert
。如果是这种情况,那么上面的代码是正确的。如果您有意图(根据提醒message
的含义)确保他们的fit_start_time
变量是之前 fit_end_time
的日期,那么您的原始代码很好,但是您从jQuery .val()
方法获得的数据无法正确解析。如果您向我们提供了选择器正在嗅探的实际HTML,那将会有所帮助。
答案 2 :(得分:3)
比较字符串格式的日期(mm-dd-yyyy)。
var job_start_date = "10-1-2014"; // Oct 1, 2014
var job_end_date = "11-1-2014"; // Nov 1, 2014
job_start_date = job_start_date.split('-');
job_end_date = job_end_date.split('-');
var new_start_date = new Date(job_start_date[2],job_start_date[0],job_start_date[1]);
var new_end_date = new Date(job_end_date[2],job_end_date[0],job_end_date[1]);
if(new_end_date <= new_start_date) {
// your code
}
答案 3 :(得分:1)
尝试使用new Date(obj).getTime()
if( new Date(fit_start_time).getTime() > new Date(fit_end_time).getTime() )
{
alert(fit_start_time + " is greater."); // your code
}
else if( new Date(fit_start_time).getTime() < new Date(fit_end_time).getTime() )
{
alert(fit_end_time + " is greater."); // your code
}
else
{
alert("both are same!"); // your code
}
答案 4 :(得分:0)
这已经在:
Age from Date of Birth using JQuery
或者你可以使用Date.parse(),如
var date1 = new Date("10/25/2011");
var date2 = new Date("09/03/2010");
var date3 = new Date(Date.parse(date1) - Date.parse(date2));
答案 5 :(得分:0)
以另一种方式尝试:
var start_date = $("#fit_start_time").val(); //05-09-2013
var end_date = $("#fit_end_time").val(); //10-09-2013
var format='dd-MM-y';
var result= compareDates(start_date,format,end_date,format);
if(result==1)/// end date is less than start date
{
alert('End date should be greater than Start date');
}
OR:
if(new Date(start_date) >= new Date(end_date))
{
alert('End date should be greater than Start date');
}