javascript - 如何检查日期时间是否在某个范围内?年-月-日 HH :MM:SS format in jquery or javascript

标签 javascript jquery date datetime timestamp

给出:

start range: 2016-01-01 21:00:00
end range: 2016-02-29 23:59:59

inputed time: 2016-02-03 01:00:00

我找不到任何立即检查 YYYY-MM-DD HH:MM:SS 格式的代码。 我只找到用于检查日期或时间的代码。

所以我只是将两者结合起来并做了类似的事情。

伪代码:

if(checkdate()== true)
{
   if(checktime()== true)
   {
     alert('yes');
   }
   else
   {
     alert('no');
   }

}
else
{
   alert('no');
}

我刚刚意识到这根本不起作用,因为根据我给定的示例。

对于 checkdate() 来说它是 true,但对于 checktime() 来说是 false,因为 01:00:00 不在 21:00:00-23:59:59 之间,但它应该是 true,因为开始和结束范围是不同的日期。

我该怎么做?

最佳答案

创建一个函数checkdate来解析日期并进行比较

function checkdate(_input, _start, _end) {
    function parseDate(x) {
        if (typeof x === 'string') {
            var parts = x.split(/[-: ]/g).map(Number);
            x = new Date(parts[0], parts[1]-1, parts[2], parts[3], parts[4], parts[5]);
        }
        return x;
    }

    _input = parseDate(_input);
    _start = parseDate(_start);
    _end   = parseDate(_end);

    return _input > _start && _input < _end;
}

FIDDLE

<小时/>

仅供娱乐,这是高尔夫版本

function checkdate() {
    var y = [].slice.call(arguments).map(function(x) {
        var arr = [null].concat(x.split(/[-: ]/g).map(Number)); arr[2]--;
        return new (Function.prototype.bind.apply(Date, arr));
    });
    return y[0] > y[1] && y[0] < y[2];
}

关于javascript - 如何检查日期时间是否在某个范围内?年-月-日 HH :MM:SS format in jquery or javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35183059/

相关文章:

javascript - 如何使用 jquery 从 HTML 表中选择特定行?

swift - Swift 中日期类型的空值

javascript - requestAnimationFrame 会干扰 CSS 转换吗?

javascript - 将已编译的下划线模板附加到文档片段

javascript - 使用 $.get() 显示菜单和子菜单

php - 一页上的多个简单模式 - 动态

date - 比较两个日期而不考虑时间

r - 查找数据框行名的交集

javascript - jquery所有值不为空则显示提交按钮,否则不显示

javascript - JS : save page animations into mp4