有一个库将"1天"转换为86400000

qwe*_*ymk 0 javascript date

我正在寻找一个可以将'1天'转换为86400000或'20分钟'到1200000的库或功能.我要从一个可读的字符串到一些ms

就像是:

var key = { s: 1000, m:1000*60, h:1000*60*60, d: 1000*60*60*24, ... },
    m = str.match((\d+) (\w)),
    result = m[1] * (key[m[2]] || 1); 
Run Code Online (Sandbox Code Playgroud)

Mat*_*ley 8

你的代码应该很好用.我采用了基本的想法,并将一个更灵活的功能组合在一起,可以组合单元.它接受的内容非常放松,但如果你愿意的话,你可以更加严格.

(function() {
    var units = {
        ms: 1/1000,

        m: 60,
        min: 60, mins: 60,
        minute: 60, minutes: 60,

        h: 60*60,
        hr: 60*60, hrs: 60*60,
        hour: 60*60, hours: 60*60,

        d: 60*60*24,
        day: 60*60*24, days: 60*60*24,
    };

    Date.parseInterval = function(interval) {
        var seconds = 0;
        interval.replace(/(\d+(?:\.\d*)?)\s*([a-z]+)?/ig, function($0, number, unit) {
            if (unit) {
                number *= units[unit.toLowerCase()] || 1;
            }
            seconds += +number;
        });
        return seconds * 1000;
    };
})();

console.log(Date.parseInterval('1 day') === 86400000);
console.log(Date.parseInterval('20 min') === 1200000);
console.log(Date.parseInterval('1 day, 3 hours, and 22.5 seconds') === 97222500);
Run Code Online (Sandbox Code Playgroud)