mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 17:06:53 +02:00
MDL-16949 - fix wrong addition of times in SCORM API, thanks Xabi Martin. backport 1.8.
This commit is contained in:
parent
537172328a
commit
b9aa74c7f5
1 changed files with 35 additions and 11 deletions
|
@ -1110,18 +1110,42 @@ function SCORMapi1_3() {
|
||||||
var firstarray = first.match(matchexpr);
|
var firstarray = first.match(matchexpr);
|
||||||
var secondarray = second.match(matchexpr);
|
var secondarray = second.match(matchexpr);
|
||||||
if ((firstarray != null) && (secondarray != null)) {
|
if ((firstarray != null) && (secondarray != null)) {
|
||||||
var secs = parseFloat(firstarray[13],10)+parseFloat(secondarray[13],10); //Seconds
|
var firstsecs=0;
|
||||||
var change = Math.floor(secs / 60);
|
if(parseFloat(firstarray[13],10)>0){ firstsecs=parseFloat(firstarray[13],10); }
|
||||||
secs = secs - (change * 60);
|
var secondsecs=0;
|
||||||
var mins = parseInt(firstarray[11],10)+parseInt(secondarray[11],10)+change; //Minutes
|
if(parseFloat(secondarray[13],10)>0){ secondsecs=parseFloat(secondarray[13],10); }
|
||||||
|
var secs = firstsecs+secondsecs; //Seconds
|
||||||
|
var change = Math.floor(secs/60);
|
||||||
|
secs = Math.round((secs-(change*60))*100)/100;
|
||||||
|
var firstmins=0;
|
||||||
|
if(parseInt(firstarray[11],10)>0){ firstmins=parseInt(firstarray[11],10); }
|
||||||
|
var secondmins=0;
|
||||||
|
if(parseInt(secondarray[11],10)>0){ secondmins=parseInt(secondarray[11],10); }
|
||||||
|
var mins = firstmins+secondmins+change; //Minutes
|
||||||
change = Math.floor(mins / 60);
|
change = Math.floor(mins / 60);
|
||||||
mins = mins - (change * 60);
|
mins = Math.round(mins-(change*60));
|
||||||
var hours = parseInt(firstarray[9],10)+parseInt(secondarray[9],10)+change; //Hours
|
var firsthours=0;
|
||||||
change = Math.floor(hours / 24);
|
if(parseInt(firstarray[9],10)>0){ firsthours=parseInt(firstarray[9],10); }
|
||||||
hours = hours - (change * 24);
|
var secondhours=0;
|
||||||
var days = parseInt(firstarray[6],10)+parseInt(secondarray[6],10)+change; // Days
|
if(parseInt(secondarray[9],10)>0){ secondhours=parseInt(secondarray[9],10); }
|
||||||
var months = parseInt(firstarray[4],10)+parseInt(secondarray[4],10)
|
var hours = firsthours+secondhours+change; //Hours
|
||||||
var years = parseInt(firstarray[2],10)+parseInt(secondarray[2],10)
|
change = Math.floor(hours/24);
|
||||||
|
hours = Math.round(hours-(change*24));
|
||||||
|
var firstdays=0;
|
||||||
|
if(parseInt(firstarray[6],10)>0){ firstdays=parseInt(firstarray[6],10); }
|
||||||
|
var seconddays=0;
|
||||||
|
if(parseInt(secondarray[6],10)>0){ firstdays=parseInt(secondarray[6],10); }
|
||||||
|
var days = Math.round(firstdays+seconddays+change); // Days
|
||||||
|
var firstmonths=0;
|
||||||
|
if(parseInt(firstarray[4],10)>0){ firstmonths=parseInt(firstarray[4],10); }
|
||||||
|
var secondmonths=0;
|
||||||
|
if(parseInt(secondarray[4],10)>0){ secondmonths=parseInt(secondarray[4],10); }
|
||||||
|
var months = Math.round(firstmonths+secondmonths);
|
||||||
|
var firstyears=0;
|
||||||
|
if(parseInt(firstarray[2],10)>0){ firstyears=parseInt(firstarray[2],10); }
|
||||||
|
var secondyears=0;
|
||||||
|
if(parseInt(secondarray[2],10)>0){ secondyears=parseInt(secondarray[2],10); }
|
||||||
|
var years = Math.round(firstyears+secondyears);
|
||||||
}
|
}
|
||||||
if (years > 0) {
|
if (years > 0) {
|
||||||
timestring += years + 'Y';
|
timestring += years + 'Y';
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue