2014-10-08 2 views
5

Я искал высоко и низко и, похоже, не нашел прямого ответа на этот вопрос. В принципе, я называю API YouTube и получаю документ JSON, а затем разбираю его. Все остальное хорошо, но я не понимаю, как разбирать свойство «продолжительность», чтобы отобразить его как читаемое человеком.Ruby on Rails - API YouTube - Как форматировать длительность ISO 8601 (PT45S)

Поле 'Продолжительность' приходит как 'PT1H5M34S' - 1 час 5 минут 34 секунды

Или это может быть 'PT24S' - 24 секунды

Или 'PT4M3S' - 4 минуты 3 секунды

В Ruby должен быть способ разобрать эту строку и сделать ее доступной для чтения, чтобы я мог просто пройти время на ходу в моем цикле и преобразовать ее. Любая помощь или руководство получают большую оценку. Я пробовал использовать Date.parse, Time.parse, Date.strptime, а также многие другие вещи ... Как просто gsub-ing PT из строки и ее отображение, но это не кажется правильным.

ответ

0

Простой подход, чтобы получить количество секунд видео менее чем за 24 часа:

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 

 Смежные вопросы

  • Нет связанных вопросов^_^