转换分钟 - > HH:MM。最短的代码可能(单线?)

时间:2015-05-18 20:25:29

标签: javascript

这只是为了好玩。对于将(负和正)分钟转换为hh:mm格式的函数,最短代码替换是什么? 例子:90分钟 - > 1:30,0 - > “”, - 90 - > -1:30,1 - > 0点01分。

我确实有自己的功能,就像一个魅力,但也许你发现自己挑战写一个单行,这就像我有点尴尬的5班轮一样。请不要包含任何第三方库。

function convertMinutesToHourStr(minutes) {
        if (minutes === 0)
            return "";
        var minutesStr = Math.abs(minutes) % 60 < 10 ? "0" + Math.abs(minutes) % 60 : Math.abs(minutes) % 60;
        var str = parseInt(Math.abs(minutes) / 60) + ":" + minutesStr;
        return minutes < 0 ? "-" + str : str;
    }

再次说明:这只是为了为一项简单的任务编写最短的代码而挑战,并向所有那些非常聪明的人发送。这不是为了工作。是的,我知道,有很多类似的问题,所以请不要说“重复”和降级。如果您对此问题感到不满,请忽略它。感谢。

3 个答案:

答案 0 :(得分:4)

这应该这样做:编辑:不要使用它。见下文

function convertMinutesToHourStr(minutes) {
    return parseInt(minutes/60) + ":" + ([1e15] + Math.abs(minutes % 60)).slice(-2);
}

唯一的缺点是0分钟输出0:00。

修改

function convertMinutesToHourStr(minutes) {
    return minutes ? (minutes<0 ? "-" : "") + parseInt(Math.abs(minutes/60)) + ":" + ([1e15] + Math.abs(minutes % 60)).slice(-2) : "";
}

输出""输入为0.非数字输入会破坏它。

答案 1 :(得分:2)

这是我的尝试。我喜欢随着函数的进展而破坏我的变量。如果你向他们表明怜悯,你就会引发反叛。

$('#filternumbers').on('change', function () {
    $(".numbers").hide();
    $('#filternumbers option:selected').each(function() {
        var number = $(this).val();
        var classNames = '.' + number;
        $(".numbers").filter(classNames).show();
    });

});

答案 2 :(得分:-1)

使用date.js https://github.com/datejs/Datejs

(new Date()).clearTime()
   .addMinutes(minutes)
   .toString('H:mm');

或没有外部库

new Date(null).setMinutes(minutes);