2014-10-08 11 views
5

Szukałem wysokiego i niskiego poziomu i nie mogę znaleźć prostej odpowiedzi na ten temat. Zasadniczo wywołuję interfejs API YouTube i odzyskuję dokument JSON, a następnie analizuję go. Cała reszta jest dobra, ale nie rozumiem, jak przeanalizować właściwość "duration", aby wyświetlić ją jako czytelną dla człowieka.Ruby on Rails - Interfejs API serwisu YouTube - jak sformatować czas trwania ISO 8601 (PT45S)

pole 'czas trwania' wywodzi się jako 'PT1H5M34S' - 1 godzinę 5 minut 34 sekund

lub może być 'PT24S' - 24 sekund

A 'PT4M3S' - 4 minuty 3 sekundy

Musi być jakiś sposób w Rubim, aby przetworzyć ten ciąg i uczynić go czytelnym dla człowieka, tak, żebym mógł po prostu przekazać czas trwania w locie w mojej pętli i przekonwertować go. Każda pomoc lub wskazówki są mile widziane. Próbowałem przy użyciu Date.parse, Time.parse, Date.strptime, wraz z wieloma innymi rzeczami ... Jak po prostu gsub-out PT out of the string i wyświetlanie go, ale to nie wydaje się właściwe.

Odpowiedz

0

proste podejście, aby uzyskać liczbę sekund wideo mniej niż 24 godzin:

dur = "PT34M5S" 
pattern = "PT" 
pattern += "%HH" if dur.include? "H" 
pattern += "%MM" if dur.include? "M" 
pattern += "%SS" 
DateTime.strptime(dur, pattern).seconds_since_midnight.to_i 
Powiązane problemy