在javascript中添加15分钟到字符串

时间:2013-07-03 11:13:29

标签: javascript jquery

var time="18:15:00"

我正在以24小时格式获得时间,如上面的字符串。 我必须添加15分钟的时间我如何添加。 不使用substring()

var time字符串不是date object。 在谷歌搜索但没有得到它。

4 个答案:

答案 0 :(得分:10)

你可以这样做:

 function addMinutes(time, minsToAdd) {
  function D(J){ return (J<10? '0':'') + J;};
  var piece = time.split(':');
  var mins = piece[0]*60 + +piece[1] + +minsToAdd;

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

addMinutes('18:15:00', '20');  // '18:35'

DEMO Plunker

答案 1 :(得分:0)

Dhavals答案非常好,但我更喜欢简单和简单单行代码。
因此,我使用以下内容:

var minsToAdd = 15;
var time = "15:57";
var newTime = new Date(new Date("1970/01/01 " + time).getTime() + minsToAdd * 60000).toLocaleTimeString('en-UK', { hour: '2-digit', minute: '2-digit', hour12: false });

(如果您需要秒数,只需将second: '2-digit'添加到格式选项中。

更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString

答案 2 :(得分:0)

只需将Original time string转换为time 然后将添加的时间字符串转换为时间然后添加它们

  var time="18:15:00"; // Original Time
  var timeToadd = "00:15:00";  // Time to be added in min
  var timeToAddArr = timeToadd.split(":");             
  var ms = (60 * 60 * parseInt(timeToAddArr[0]) + 60 * (parseInt(timeToAddArr[1])) ) * 1000;
  
  var newTime =new Date('1970-01-01T' + time ).getTime() + ms
  var finalTime = new Date(newTime).toLocaleString('en-GB').slice(12 ,20)

  console.log(finalTime)

答案 3 :(得分:-2)

首先将字符串转换为日期对象,如下所示:

var d = new Date("18:15:00");

然后使用第一个日期,创建一个新日期并添加15分钟(以毫秒为单位):

var e = new Date(d.getTime() + 15*60000);

您应该可以使用e返回所需的字符串。