比较前将时间增加一小时
Increase time by an hour before comparing
我有包含军事格式时间的代码。
<div class="em" data-time="17:30">
我正在将该时间与当前时间进行比较,以确定设定的时间是否已过去。
var curDate = new Date(),
curTime = curDate.getTime(),
givenTm = $(this).find('.em').attr('data-time'),
givenMs = Date.parse(curDate.toDateString() + ' ' + givenTm);
if (curTime > givenMs) {
// time has passed
}
我需要修改我的代码,不是检查数据属性中的时间,而是在该给定时间之后的一个小时。此外,我给定的时间只能在同一天,并且不晚于23:30,这意味着我只关心给定的时间是否不晚于23:00。
我如何将所有这些放在一起?
要调整一小时,只需在比较中添加一小时(以毫秒 (60 * 60 * 1000) 为单位)。 要忽略 2300 之后的任何给定时间,您需要在条件中添加另一个子句。 所以这样的事情可能会做到:
if (new Date(givenMs).getHours() < 23
&& curTime > givenMs + 3600000) {
// time has passed
}
希望这有所帮助。
尝试使用 .toJSON
, String.prototype.replace()
, String.prototype.slice()
$("div").click(function() {
var curDate = new Date(),
curTime = curDate.toJSON(),
givenTm = $(this).find(".em").attr("data-time")
.replace(/('d+)(?=:)/, function(match) {
return Number(match) + 1
}),
curr = curTime.slice(11, -8).replace(":", ""),
given = givenTm.replace(":", "");
if (curr < 2330 && given < 2330) {
// time has passed
console.log("currTime:", curr, "givenTime:", given,
"time has not passed")
} else {
console.log("time has passed")
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<div>click
<div class="em" data-time="17:30">
</div>
相关文章:
- 每小时倒计时一次,但以30分钟为单位
- 引导时间选择器在增加或减少小时和分钟的同时获取 NaN
- 对象数组-与其他列数据相比,增加一列
- 角函数每秒钟增加一次
- 将上一小时和下一小时添加到数组中
- 以 JSON 日期为单位的一小时偏移量
- 从当前时间缩短一小时
- 比较前将时间增加一小时
- 是否可以通过php将特定的列值(int)增加一
- 根据文本框值(而非DateTimes)计算时间,返回四分之一小时
- setUTCHours将传递给函数的时间增加一个小时
- 纪元时间.net到JavaScript(一小时?)
- 高图格林尼治时间和一小时偏移
- 创建一小时直播(在线)
- 在一段时间内平滑地增加一个数
- 从特定日期起,每24小时将var增加一
- Javascript将Name array()增加一
- 使 Cookie 在一小时内过期
- 离开和重新进入图片库时,无论何时单击上一张/下一张照片按钮,都会使您浏览的照片数量增加一倍.知道为什么吗?
- 计算页面加载到下一小时的第一分钟之间的秒数