2014-10-08 14 views
5

Ho cercato in alto e in basso e non riesco a trovare una risposta diretta su questo. Fondamentalmente, sto chiamando l'API di YouTube e recuperando un documento JSON, quindi analizzandolo. Tutto il resto è buono, ma non capisco come analizzare la proprietà 'duration' per visualizzarla come leggibile.Ruby on Rails - YouTube API - Come formattare la durata ISO 8601 (PT45S)

Il campo 'durata' si avvicina come 'PT1H5M34S' - 1 ora 5 minuti e 34 secondi

o potrebbe essere 'PT24S' - 24 secondi

O 'PT4M3S' - 4 minuti 3 secondi

Ci deve essere un modo in Ruby per analizzare questa stringa e renderla leggibile in modo da poter passare la durata al volo nel mio ciclo e convertirla. Qualsiasi aiuto o guida è molto apprezzato. Ho provato a utilizzare Date.parse, Time.parse, Date.strptime, insieme a molte altre cose ... Come se stessi semplicemente eliminando il PT dalla stringa e visualizzandolo, ma ciò non sembra corretto.

risposta

0

Un approccio semplice per ottenere il numero di secondi per i video meno di 24 ore:

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