2013-05-07 4 views
0

"HH : MM"(예 : 01:25 - 1 시간 25 분) 형식의 문자열을 다음과 같이 변환하려고합니다. 레시피 페이지의 마이크로 데이터."hh : mm"-string을 HTML5 마이크로 포맷 기간으로 변환

$time = date_create_from_format("H:i", get_field("tilberedningstid")); 

을하지만 어떻게 내가 합법적 인 ISO8601 기간 형식이 DateTime 개체를 변환 않습니다

그래서 같은 문자열에서 DateTime 개체를 만들 수 있습니까?

나는 모든 것을 시도한 것처럼 느껴집니다. 나는 DateInterval 클래스를 가지고 놀았는데, 나는 PT1H25M이 될 올바른 형식을 출력해야한다고 생각한다.하지만 DateTime 객체를 DateInterval이 해석 할 수있는 형식으로 변환 할 수 없다. 이미 $interval = DateInterval($time->format(DateTime::ISO8601));을 시도했으며 DateInterval 클래스에서 지원해야합니다.

질문은 간단합니다. 마이크로 포맷에서 사용하기 위해 문자열 "01:25"(HH : MM)을 ISO8601 문자열 PT1H25M으로 변환하려면 어떻게해야합니까?

답변

2

왜 날짜 간격을 사용하고 있습니까? 형식 만 사용할 수 있습니다. 그러나 PTHM 문자도 유효한 코드이므로 이스케이프해야합니다.

<?php 
$date = new DateTime('01:25'); 
echo $date->format('\P\TG\Hi\M'); 
//output: PT1H25M 
?> 

은 물론

+1

, 내가 얼마나 바보를 사용하는 방법에 대한 유효 코드에 대한 dateDateTime::format를 참조하십시오. 나는 내가 설명서 [여기] (http://php.net/manual/en/dateinterval.format.php)에 오도했다는 것을 짐작한다 - 고마워 :) 매력처럼 작동한다! – MadsMadsDk