在javascript中比较时间范围
Comparing time ranges in javascript
我需要验证用户选择的时间,开始日期必须大于早上6点,小于结束日期,该日期不得超过第二天凌晨2点。
虽然我没有日期作为输入,但我认为我应该在选择的时间后添加日期进行比较,这是实现这一目标的最佳方法还是有更聪明的方法?
以下是到目前为止我能想到的
function compareTimes(start,end){
var t1 = new date();
var t2 = new date();
var starttime = t1 + " " + start;
if (end >= '00:00'){
t2.setDate(t2.getDate()+1);
}
var endtime = t2 + " " + end;
if(Date.parse ( endtime ) > Date.parse ( starttime )){
alert ("greater than");
return true
}
}
试试这个库。差异函数应该适用于您。http://momentjs.com
下面的函数将一个时间字符串(如您给出的时间字符串)附加到日期,并将其作为新的date对象返回。如果您没有通过日期,它将使用今天的日期。
function setDateTime(timeString, date) {
var result = (date ? new Date(date) : new Date())
, match = /('d+):('d+)/.exec(timeString)
;
result.setHours(Number(match[1]), Number(match[2]), 0, 0);
return result;
}
一旦你有了startDate = setDateTime(start);
和endDate = setDateTime(end);
,你就可以使用getHours方法来判断它是在凌晨2点之前还是下午6点之后。
注意:您可能应该检查时间<6,因此,添加一天(endDate.setDate(endDate.getDate() + 1);
,否则您的结束日期将在开始日期之前。:-)
相关文章:
- Moment.js与上午至下午的时间范围进行比较
- jQuery日期[时间]选择器-如何保存时间范围(+修改日期格式)
- Regexp匹配的时间范围
- Highcharts中具有不同时间范围的系列
- 使用JS检查用户是否在EST时区和设置的EST时间范围内
- 日期-时间范围指令字段未显示任何值
- 使用jquery感知文本字符串中的时间范围
- JavaScript 检查时间范围是否重叠
- 如何将当前时间与使用 Javascript 格式化为字符串的时间范围进行比较
- 计算时间范围并将其保存到文件
- 我怎样才能在时间范围内让某事发生
- 角度 ng 显示日期在时间范围内或不从
- HTML5 媒体时间范围对象
- D3 时间刻度将前后时间范围添加时间间隔的百分比
- 获取网站's设置时间范围的时间
- SQL查询上的PHP AJAX日期时间范围问题
- 设置时间范围
- 循环和组合数组中的时间范围
- 在一系列小的时间范围内处理来自同一客户端的多个请求
- 刷新给定时间范围内的页面