2017-09-17 6 views
1

Kennen Sie ein npm-Modul, das menschliche String-Zeit in Tage, Stunden, Sekunden oder Millisekunden umrechnen kann, vorzugsweise mit moment.js Zeiteinheiten?Konvertieren menschlicher String-Zeit zwischen verschiedenen Zeiteinheiten

Es ist ein wenig schwierig, zu erklären, so sind hier ein paar Beispiele:

'1 Stunde' zu Minuten = 60
'2 Tage' zu Sekunden = 172800
'60 Sekunden' auf Minuten = 1
' 30 Minuten auf Sekunden = 1800

wie oben kurz Hand mit:
'1h' auf Minuten = 60
'2d' auf Sekunden = 172800
60er 'auf Minuten = 1
'30m' auf Sekunden = 1800

Dies sind die Zeichenfolge Einheiten, die von moment.js

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

oder in Abhängigkeit ausgedrückt:

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

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

Oder ist es möglich, Machst du das nur mit einem Moment? Denken Sie daran, dass mir das tatsächliche Datum oder die tatsächliche Uhrzeit egal ist - ich möchte lediglich, dass die Einheitenumrechnungen mit den vom Menschen lesbaren Einheiten gemischt werden.

Vielen Dank im Voraus.

Antwort

1

landete ich unter Verwendung von bis:

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

Try timestring Bibliothek zu verwenden. Es analysiert eine vom Menschen lesbare Zeitkette in einen zeitbasierten Wert (standardmäßig in Sekunden). Wie ich sehe, kann es alles, was Sie brauchen:

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

str Eingang param ohne Leerzeichen gesetzt werden können zum Beispiel, ‚1d3h25m18s‘

Verwandte Themen