
[英]How to calculate duration in Hour:Minute format from provided Start Hour-Minute to End Hours-Minute?
[英]from last minute of an hour to first minute of next hour
我建立了一个存储消息的页面和一个将消息发送到数据库的用户。 表单有一个限制:从将消息发布到数据库后的30秒内,您不能再使用同一用户。
function undisable (id,time){
setTimeout(function() {
$('#'+id).prop('disabled', false);
}, (30000-time));
}
$('#destinatario option').each(function(){
var ds = $(this).attr('data-ts');
var dateArray = ds.split(" "); // split the date and time
var ds1 = dateArray[0].split("-"); // split each parts in date
var ds2 = dateArray[1].split(":"); // split each parts in time
var newDate = new Date(ds1[0], (+ds1[1] - 1), ds1[2], ds2[0], ds2[1], ds2[2]).getTime(); //parse it
var currentDate = new Date().getTime();
var diff = currentDate - newDate;
if(diff < 30000){
$(this).prop('disabled', true);
var id = $(this).attr('id');
undisable(id,diff);
}
});
现在,我想添加一个新条件:您不能在一个小时的最后一分钟到下一小时的第一分钟之间发布任何用户。 因此,例如,您不能在10:59:00到11:01:00之间发布消息(以此类推)。 设置if子句执行此操作的最聪明方法是什么? 我正在尝试构建的东西是这样的:
if(now(minutes) is between 59 and 01){ //this is the point where I get stuck at
$('#sendbutton').prop('disabled', true); //I cannot post
}else{
$('#sendbutton').prop('disabled', false); //I can post
}
谢谢你的帮助!
没错,这使事情变得复杂。 这是解决您的问题的代码。 依靠setTimeouts来禁用和启用按钮,并且您可以轻松地编辑要禁用按钮的时间。
function time_disabler() { var time_disable = 59; // time in minutes to disable the button var time_enable = 1; // time in minutes to enable to button var current_mins = new Date().getMinutes(); // current time (minutes) var current_secs = new Date().getSeconds(); // current time (seconds) var total_seconds = current_mins * 60 + current_secs; // current time overall in seconds var last_min_secs = time_disable*60; // time in seconds to disable the button var first_min_secs = time_enable * 60; // time in seconds to enable the button // if in between the two times, disable button if((total_seconds >= last_min_secs && total_seconds < first_min_secs) || (total_seconds < first_min_secs && first_min_secs < last_min_secs)) { $('#sendbutton').prop('disabled', true); //I cannot post var time = (total_seconds >= first_min_secs)? first_min_secs + (60*60) - total_seconds : first_min_secs - total_seconds ; // set time out to recall this function, which will enable it var t = setTimeout(function (){ time_disabler(); }, time * 1000 ); } else { // if not between the times, disable it $('#sendbutton').prop('disabled', false); //I can post // set time out to recall this function, which will disable it var t = setTimeout(function(){time_disabler();}, ((last_min_secs> total_seconds ? last_min_secs : last_min_secs + 60*60) - total_seconds) * 1000 ); } } time_disabler();
-旧答案-
您只需要使用JavaScript的getMinutes()和getSeconds():
var current_mins = new Date().getMinutes(); var current_secs = new Date().getSeconds(); current_mins += current_secs/60; if(current_mins >= 59 || current_mins <= 1) { $('#sendbutton').prop('disabled', true); //I cannot post } else { $('#sendbutton').prop('disabled', false); //I can post }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.