5

var time="18:15:00"

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

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

4

4 回答 4

20

你可以这样做:

 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'

演示 Plunker

于 2013-07-03T11:24:04.093 回答
1

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

于 2017-10-19T14:24:13.030 回答
0

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

  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)

于 2018-06-14T11:57:22.930 回答
-6

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

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

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

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

您应该能够用来e返回您想要的字符串。

于 2013-07-03T11:18:53.020 回答