求教Javascript问题~

starmichael 发布于 2014/04/09 15:25
阅读 159
收藏 0
js校验 ,从数据库中查出来的时间是否在指定的时间段中,如15:23是否在15:00-15:30中,谢谢~
加载中
0
雨翔河
雨翔河

太简单的算法问题,自己解决吧。

0
laoyao
laoyao

js 中也是可以对时间对象操作的,可以这样验证:

new Date(15:00).getTime()<new Date(15:23).getTime()<new Date(15:30).getTime()

我这只是给你提个思路,具体15:00 怎么变成new Date()里面合法的参数,你自己去百度,我这刚好有个方法,给你提供下,参数时间格式是:2014-02-02 15:00:00

//根据日期字符串取得其时间
function getTimeByDateStr(dateStr){
    var year = parseInt(dateStr.substring(0,4));
    var month = parseInt(dateStr.substring(5,7),10)-1;
    var day = parseInt(dateStr.substring(8,10),10);
    return new Date(year, month, day).getTime();
}
//检查开始时间不能小于
function checkStartDateAndEndDate(startDate, endDate){
var startTime = getTimeByDateStr(startDate);
    var endTime = getTimeByDateStr(endDate);
    if(startTime > endTime){
        return false;
    }
    return true;
}

}

starmichael
starmichael
谢谢,我还是直接比较的字符串
0
con
con

提醒楼主注意下场景里是否涉及时区转换的问题

0
Narky
Narky

不具体日期的话可以手动割开来做单纯的数字比较

0
starmichael
starmichael

引用来自“laoyao”的评论

js 中也是可以对时间对象操作的,可以这样验证:

new Date(15:00).getTime()<new Date(15:23).getTime()<new Date(15:30).getTime()

我这只是给你提个思路,具体15:00 怎么变成new Date()里面合法的参数,你自己去百度,我这刚好有个方法,给你提供下,参数时间格式是:2014-02-02 15:00:00

//根据日期字符串取得其时间
function getTimeByDateStr(dateStr){
    var year = parseInt(dateStr.substring(0,4));
    var month = parseInt(dateStr.substring(5,7),10)-1;
    var day = parseInt(dateStr.substring(8,10),10);
    return new Date(year, month, day).getTime();
}
//检查开始时间不能小于
function checkStartDateAndEndDate(startDate, endDate){
var startTime = getTimeByDateStr(startDate);
    var endTime = getTimeByDateStr(endDate);
    if(startTime > endTime){
        return false;
    }
    return true;
}

}

二十个时间段存储在二维数组中,mongodb中查询出来循环比较,在时间段内count++;

返回顶部
顶部