Javascript 用于检查多种格式的日期是否在范围内的函数

Javascript 用于检查多种格式的日期是否在范围内的函数,javascript,jquery,date,Javascript,Jquery,Date,我的变量范围如下所示: startDate=2015-12-01 endDate=2015-12-31 我需要检查另一个日期是否在如下所示的范围内: dateToCheck=01/15/2016 我试图编写一个函数,返回日期是否在范围内的true或false: function dateInRange(date, startDate, endDate) { } 在PHP中,您可以将任何日期字符串转换为时间戳,我不知道如何在Javascript中从多种格式转换为时间戳?您可以创建一个解析日期并

我的变量范围如下所示:

startDate=2015-12-01
endDate=2015-12-31

我需要检查另一个日期是否在如下所示的范围内:

dateToCheck=01/15/2016

我试图编写一个函数,返回日期是否在范围内的true或false:

function dateInRange(date, startDate, endDate) {

}

在PHP中,您可以将任何日期字符串转换为时间戳,我不知道如何在Javascript中从多种格式转换为时间戳?

您可以创建一个解析日期并返回日期对象的函数

function createDate(date) {
    if ( date.indexOf('-') !== -1 ) {
        var parts = date.split('-');
        return new Date(parts[0], parts[1]-1, parts[2]);
    } else if ( date.indexOf('/') !== -1 ) {
        var parts = date.split('/');
        return new Date(parts[2], parts[0]-1, parts[1]);
    } else {
        return new Date(date);
    }

} 
然后,您可以解析日期并执行以下操作

function dateInRange(date, startDate, endDate) {

    return date > startDate && date < endDate;

}
函数日期范围(日期、开始日期、结束日期){
返回日期>开始日期&日期<结束日期;
}

您可以创建一个解析日期并返回日期对象的函数

function createDate(date) {
    if ( date.indexOf('-') !== -1 ) {
        var parts = date.split('-');
        return new Date(parts[0], parts[1]-1, parts[2]);
    } else if ( date.indexOf('/') !== -1 ) {
        var parts = date.split('/');
        return new Date(parts[2], parts[0]-1, parts[1]);
    } else {
        return new Date(date);
    }

} 
然后,您可以解析日期并执行以下操作

function dateInRange(date, startDate, endDate) {

    return date > startDate && date < endDate;

}
函数日期范围(日期、开始日期、结束日期){
返回日期>开始日期&日期<结束日期;
}

您可以使用。您也可以将它们转换为字符串:yyy-MM-DD并进行比较,但使用时间戳更好可能是您有内置的,或者有类似的库具有更智能的日期分析器。date.parse在2016年1月15日无法使用。您也可以将它们转换为字符串:yyy-MM-DD并进行比较,但是使用时间戳更好,可能你有内置的,或者有类似的库有更智能的日期分析器。date.parse在2016年1月15日无法工作返回新日期(date)|0;不是很有用,因为它有时返回日期,有时返回整数0@Gavriel-它只是为比较等返回一个数字,而不是字符串
无效日期
,而是另一个返回返回日期。也许你想返回新的日期(…)。getTime()无处不在?还有,为什么一个格式不正确的日期字符串需要表示1970-01-01?无论如何,将一个日期强制值与毫秒进行比较,不需要
getTime
,在这里,我再次返回
0
,如整数零,而不是历元,因为这似乎比返回字符串
无效日期更好,但不管怎么说,这个答案并不重要,所以我将删除它,因为您似乎不明白我添加它的原因。return new Date(Date)|0;不是很有用,因为它有时返回日期,有时返回整数0@Gavriel-它只是为比较等返回一个数字,而不是字符串
无效日期
,而是另一个返回返回日期。也许你想返回新的日期(…)。getTime()无处不在?还有,为什么一个格式不正确的日期字符串需要表示1970-01-01?无论如何,将一个日期强制值与毫秒进行比较,不需要
getTime
,在这里,我再次返回
0
,如整数零,而不是历元,因为这似乎比返回字符串
无效日期更好,但不管怎么说,这个答案并不重要,所以我会删除它,因为你似乎不明白我为什么要添加它。