给出:
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;
}
<小时/>
仅供娱乐,这是高尔夫版本
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/