Самый простой способ получить разницу между двумя датами:
var diff = Math.floor(( Date.parse(str2) - Date.parse(str1) ) / 86400000);
Вы получаете разницу дней (или NaN, если один или оба не могут быть проанализированы). Дата синтаксического анализа дала результат в миллисекундах, и чтобы получить его днем, вы должны разделить его на 24 * 60 * 60 * 1000
. Если вы хотите, чтобы он делился на дни, часы, минуты, секунды и миллисекунды:
function dateDiff( str1, str2 ) {
var diff = Date.parse( str2 ) - Date.parse( str1 );
return isNaN( diff ) ? NaN : {
diff : diff,
ms : Math.floor( diff % 1000 ),
s : Math.floor( diff / 1000 % 60 ),
m : Math.floor( diff / 60000 % 60 ),
h : Math.floor( diff / 3600000 % 24 ),
d : Math.floor( diff / 86400000 )
};
}
Вот моя рефакторинговая версия версии Джеймса:
function mydiff(date1,date2,interval) {
var second=1000, minute=second*60, hour=minute*60, day=hour*24, week=day*7;
date1 = new Date(date1);
date2 = new Date(date2);
var timediff = date2 - date1;
if (isNaN(timediff)) return NaN;
switch (interval) {
case "years": return date2.getFullYear() - date1.getFullYear();
case "months": return (
( date2.getFullYear() * 12 + date2.getMonth() )
-
( date1.getFullYear() * 12 + date1.getMonth() )
);
case "weeks" : return Math.floor(timediff / week);
case "days" : return Math.floor(timediff / day);
case "hours" : return Math.floor(timediff / hour);
case "minutes": return Math.floor(timediff / minute);
case "seconds": return Math.floor(timediff / second);
default: return undefined;
}
}
Чтобы получить это от звукового компонента, прикрепленного к элементу, вы можете записать
var mySound = document.querySelector('#yourElement').components.sound.attrValue.src
, затем
var myAudioDuration = document.querySelector(mySound).duration
И продолжительность будет сохранена в этой переменной.
В качестве альтернативы, если ваш аудиофайл сохранен в активах с идентификатором 'myAudio', например
<a-assets>
<audio id="myAudio" src="path/to/audiofile.mp3"></audio>
</a-assets>
Вы можете написать
var myAudioDuration = document.querySelector('#myAudio').duration
И длительность будет сохранена в этой переменной.
Надеюсь, что это поможет
. Вы можете больше узнать об элементах управления аудио / видео тегами здесь
audio.onloadedmetadata = function() { alert(audio.duration); };
– Utopiah 13 July 2018 в 11:13