在Javascript中将Float转换为时间

时间:2017-12-20 07:36:03

标签: javascript

我有三个String或Float值,例如9.30,8.00和0.40,Total_hour,Paid_hour,Extra_hour

实际上应该是9小时30分钟,8小时0分钟,0小时40分钟。

问题1)如何将9.30转换为9小时30分钟

问题2)稍后想要减去并获得剩余小时= Total_hour-Paid_Hour-Extra_hour

稍后答案余下时间应该是浮动

4 个答案:

答案 0 :(得分:5)

这应该有用。

您只需要转换为ms:



let timefloat = 9.3;


function convertToMs(timefloat) {
  // Get the minutes portion
  let remainder = timefloat % 1;

  // Convert into ms
  let minutes = remainder * 100 * 60 * 1000;

  // Get the number of hours and convert to ms 
  let hours = (timefloat - remainder) * 60 * 60 * 1000;

  return minutes + hours;
}

// Convert back to float format
function convertToFloat(date) {
  let hours = date.getUTCHours();
  let mins = date.getUTCMinutes();
  return hours + (mins / 100);
}


// Log the result
console.log(new Date(convertToMs(9.3)).toUTCString());
console.log(new Date(convertToMs(8.0)).toUTCString());
console.log(new Date(convertToMs(9.3) - convertToMs(8.0)).toUTCString());

let diff = convertToMs(9.3) - convertToMs(8.0);
console.log(convertToFloat(new Date(diff)))




答案 1 :(得分:3)

首先在几分钟内转换数字,然后进行减法。然后将输出转换为小时。



var Total_hour = '9.30',
    Paid_hour = '8.00',
    Extra_hour = '0.40';

var conversionInMinutes = hour => Math.floor(hour) * 60 + (hour - (Math.floor(hour))) * 100;
var conversionInHours = min => Math.floor( min/60 ) + min % 60 / 100;
var Remaining_hour = conversionInMinutes(Total_hour) - conversionInMinutes(Paid_hour) - conversionInMinutes(Extra_hour);

console.log(conversionInHours(Remaining_hour).toFixed(2));




答案 2 :(得分:1)

以下javascript代码段将给定的float转换为小时和分钟。来源float to time

function convertNumToTime(number) {
    // Check sign of given number
    var sign = (number >= 0) ? 1 : -1;

    // Set positive value of number of sign negative
    number = number * sign;

    // Separate the int from the decimal part
    var hour = Math.floor(number);
    var decpart = number - hour;

    var min = 1 / 60;
    // Round to nearest minute
    decpart = min * Math.round(decpart / min);

    var minute = Math.floor(decpart * 60) + '';

    // Add padding if need
    if (minute.length < 2) {
    minute = '0' + minute; 
    }

    // Add Sign in final result
    sign = sign == 1 ? '' : '-';

    // Concate hours and minutes
    time = sign + hour + ':' + minute;

    return time;
}

console.log(convertNumToTime(11.15));

输出

11:09

答案 3 :(得分:0)

function doTime(input)
{
    input = input.toString()
    inputs = input.split(".")
    return (inputs[0] + "Hour and" + inputs[1] + "minutes")

}

doTime("9:22")

功能substract2

function subtract2(a , b){
     a = input.toString()
     arrayA = input.split(".")
     b = input.toString()
     arrayB = input.split(".")
     h = parseInt(arrayB[0]) - parseInt(arrayA[0])
     h <0 ? h+=12/*or 24*/ :h=h
     m = parseInt(arrayB[1]) - parseInt(arrayA[1])
     if(m<0){h-- ; m+=60}
     return h.toString() + ":" + m.toString()
}