2017-09-17 17 views
1

人間の文字列時間を日、時間、秒、またはミリ秒に変換できるnpmモジュールは、moment.js時間単位を使用することが望ましいですか? 「秒分= 60
'2日' 分= 172800
'60秒' = 1
異なる時間単位間の人間の文字列時間の変換

'1hours':

それはので、ここでいくつかの例があり、説明には少し難しいです30分秒= 1800

同じ短手を用いて上記のように:
60年代 ' '= 172800
秒に' 2D分' = 60
分に' 1 H =秒に1
'30メートル' = 1800

これらはmoment.js

Key   Shorthand 
---------------------- 
years  y 
quarters  Q 
months  M 
weeks  w 
days   d 
hours  h 
minutes  m 
seconds  s 
milliseconds ms 

または関数として表現することによって使用される文字列単位である:

const convertUnits = (input, format) => { 
    // Implementation 
}; 

convertUnits('1hours', 'minutes') // 60 
convertUnits('1h', 'm') // 60 

あるいはすることが可能ですこれはただの瞬間を使って行うのですか私は実際の日時を気にしないことを忘れないでください。単なる単位変換が人間が読める単位と混ざり合ったものにするだけです。

ありがとうございます。

答えて

1

私は、以下の使用して終了:

import * as _ from 'lodash' 
import moment from 'moment' 
import momentDurationFormat from 'moment-duration-format' 

export const convertTime = (time, format = 's') => { 

    if(!_.isString(time) || !_.isString(format)){ 
     return 0; 
    } 

    const components = time.trim().split(/(\d+)/); 
    const digits = parseInt(components[1]); 
    const unit = components[2]; 

    return moment 
     .duration(digits, unit) 
     .format(format); 
}; 
0

timestringライブラリを使用してみてください。これは、人間が読める時間文字列を時間ベースの値(デフォルトで秒単位)に解析します。 paramはスペースを入れずに設定することができ

const timestring = require('timestring') 
let str = '1d 3h 25m 18s' 
let time = timestring(str) 
console.log(time) // will log 98718 

strを入力、

例えば、「1d3h25m18s」:私は見ての通り、それはあなたが必要なすべてのことができます
関連する問題