23

我有以下内容:

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.");
}

上面的代码不起作用。对于上述问题,还有其他解决方案吗?

根据在哪里可以找到有关在 JavaScript 中格式化日期的文档?也为我工作。

4

7 回答 7

62

这很简单:

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 双精度浮点数。

于 2013-09-20T09:49:00.537 回答
5

比较字符串格式的日期(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
    }
于 2014-10-30T14:17:34.423 回答
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您拥有的当前变量。如果是这种情况,那么上面的代码是正确的。如果您的意图(根据 alert 的含义message)是确保它们的fit_start_time变量是在 之前的日期fit_end_time,那么您的原始代码很好,但是您从 jQuery.val()方法获得的数据没有正确解析. 如果您向我们提供选择器正在嗅探的实际 HTML,将会有所帮助。

于 2013-09-20T09:47:30.903 回答
2

尝试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
}
于 2013-09-20T09:46:27.853 回答
0

这已经在:

使用 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));
于 2013-09-20T09:51:43.767 回答
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');
}
于 2013-09-20T10:10:40.113 回答
-1

var startDate=“2014 年 11 月 11 日”;// 2021 年 11 月 10 日

var endDate=“2014 年 11 月 1 日”;

startDate=startDate.split('-');

endDate= endDate.split('-');

var newStartDate= new Date(startDate[2],startDate[0]-1,startDate[1]);

var newEndDate= new Date(endDate[2],endDate[0]-1,endDate[1]);

如果(新结束日期<=新开始日期){

}

于 2021-08-31T07:49:50.063 回答