Поэтому в основном у меня есть две строки временных меток, которые я хочу добавить:Добавьте две метки формата «HH +: MM: SS»
a = "00:10:12";
aParts = a.split(/:/);
b = "00:30:34";
bParts = b.split(/:/);
time1 = 3600000 * parseInt(aParts[0]) + 60000 * parseInt(aParts[1]) + 1000 * parseInt(aParts[2]);
time2 = 3600000 * parseInt(bParts[0]) + 60000 * parseInt(bParts[1]) + 1000 * parseInt(bParts[2]);
dateTime = time1 + time2;
hours = parseInt(dateTime/3600000);
dateTime = parseInt(dateTime%3600000);
minutes = parseInt(dateTime/60000);
dateTime = parseInt(dateTime%60000);
seconds = parseInt(dateTime/1000);
newTime = addLeadingZeros(hours,2) + ':' + addLeadingZeros(minutes,2) + ':' + addLeadingZeros(seconds,2);
// returns correct "00:40:46"
function addLeadingZeros (n, length){
var str = (n > 0 ? n : -n) + "";
var zeros = "";
for (var i = length - str.length; i > 0; i--)
zeros += "0";
zeros += str;
return n >= 0 ? zeros : "-" + zeros;
}
Во время написания этого вопроса я сумел придумать выше код: -), который работает как-то - это правильный способ добавления двухстрочных временных меток или есть лучший подход?
Забыл упомянуть - я попытался преобразовать две строки в объекты Date и использовать .getTime(), добавляя два времени datetime, но это дает мне неправильное время в дате.
почему вы используете регулярный формат времени, почему у не использовать 'новый Date() GetTime();'. который возвращает время в миллисекундах? – CME64
Забыл упомянуть - я попытался преобразовать две строки в объекты Date и использовать .getTime(), добавляя два времени datetime, но это дает мне неправильное время в дате. – owsata
, конечно же, вы добавите два разных раза (включая дату), вы можете отфильтровать дату в одном из них, если хотите добавить их вместе пример: 'dateTime = time1 + time2% 216000000;/* возвращает миллисекунды только временной части (1000 * 60 * 60 * 60). */' – CME64