0

我在选择/列表控件中填充了一个时间字符串,例如 05:40 我想在其中添加 20 分钟并在每次列表值更改 jquery 或 javascript 时填充到文本框中

$(document).ready(function() {

$("#starttimeList").change(function() {
var selectVal = $('#starttimeList').val();
    ////// HERE I WANT MY CODE AS selectVal is getting value of select control e.g. 05:40 and entTime is my textbox where I want the time added with 20 minutes.
$("#endTime").val(selectVal);

 });
});
4

1 回答 1

16

如果时间格式为 hh:mm,您可以使用一个简单的函数将其转换为分钟,添加更多分钟,然后再次将其转换回 hh:mm:

function addMinutes(time/*"hh:mm"*/, minsToAdd/*"N"*/) {
  function z(n){
    return (n<10? '0':'') + n;
  }
  var bits = time.split(':');
  var mins = bits[0]*60 + (+bits[1]) + (+minsToAdd);

  return z(mins%(24*60)/60 | 0) + ':' + z(mins%60);  
}  

addMinutes('05:40', '20');  // '06:00'
addMinutes('23:50', 20);    // '00:10'
addMinutes('00:00', '120'); // '02:00'

要添加的分钟数可以是数字或字符串。

如果您需要允许夏令时,使用日期对象可能会使生活更轻松。

于 2012-11-12T06:31:31.567 回答