PHP: Comment convertir une chaîne de durée à la norme ISO 8601 durée format? (ie. “30 minutes” à “PT30M”)

Il ya beaucoup de questions demandant comment faire cela dans l'autre sens (la conversion de de ce format), mais je ne peux pas trouver quelque chose sur la façon de sortie de la norme ISO 8601 durée format en PHP.

J'ai donc un tas de durée des chaînes en format lisible par l'homme - je veux les convertir dans le format ISO 8601 à la volée pour imprimer les durées de HTML5 microdonnées. Ci-dessous est un échantillon de certaines de ces chaînes de venir, et comment ils doivent être formatés

"1 hour 30 minutes" --> PT1H30M
"5 minutes" --> PT5M
"2 hours" --> PT2H

Vous obtenez l'idée.

Je peux pousser la chaîne dans un intervalle objet en PHP:

date_interval_create_from_date_string("1 hour 30 minutes");

mais il ne semble pas être une norme ISO 8601 option de sortie - comment dois-je m'approche de cela?

Merci à tous.

OriginalL'auteur Chris | 2012-11-09