繁体   English   中英

moment.js如何与纬度分钟和小时一起工作?

[英]How moment.js works with declination minutes and hours?

告诉我,请输入一个数字,例如1440 ,我需要获取或分钟,或分钟,小时或小时。 我能做什么? 我做:

var getTimeouts = function (timeouts) {
    var timeout = +timeouts,
        timeoutValue = "";

    if (timeout > 0) {
        if (timeout % 60 == 0) {
            if (timeout == 60) {
                // timeoutValue = '1 hour';
            } else {
                // timeoutValue = '... hours';
            }
        }  else {
            if (timeout == 1) {
                // timeoutValue = '1 minute';
            } else {
                // timeoutValue = '... minutes';
            }
        }
    }

    return timeoutValue;
};

console.log(getTimeouts(1440)); // 24 hours

问题:如何使用momont.js解析数字并获取分钟/分钟/小时/小时?

您只能使用momentjs做到这一点。

moment.duration().humanize()将为您提供一个松散地表示持续时间的字符串。

moment.duration(60,"minute").humanize(); //= an hour
moment.duration(1,"minute").humanize();  //= a minute
moment.duration(5,"minute").humanize();  //= 5 minutes
moment.duration(55,"minute").humanize(); //= an hour       <-!!!

根据您的需求,可能就足够了。

但是,如果您需要真正准确的信息,请使用HumanizeDuration插件

humanizeDuration(3000)      // "3 seconds"
humanizeDuration(2015)      // "2.25 seconds"
humanizeDuration(97320000)  // "1 day, 3 hours, 2 minutes"

而且,如果您不需要附带的额外语言支持,只需手动删除插件的这些部分即可。

编辑:

万一我误解了,您只需要一个代表小时,分钟,秒等的数字即可。

您可以使用moment.duration().as('something')

var getTimeouts = function (timeouts) {
    var timeout = +timeouts,
        timeoutValue = "";

    if (timeout > 0) {
        if (timeout % 60 == 0) {
            if (timeout == 60) {
                timeoutValue = '1 hour';
            } else {
                timeoutValue = parseInt(
                moment.duration(timeouts, 'minutes').as('hours'), 10) + ' hours';
            }
        } else {
            if (timeout == 1) {
                timeoutValue = '1 minute';
            } else {
                timeoutValue = parseInt(
                moment.duration(timeouts, 'minutes').as('minute'), 10) + ' minutes';
            }
        }
    }

    return timeoutValue;
};

工作副本: http : //jsfiddle.net/slicedtoad/c90v76s9/3/

您当然可以添加逻辑,使其具有“ 1小时2分钟”之类的内容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM