두 날짜 간의 차이를 계산하는 사용자 정의 필터를 만들고 싶습니다. 나는 doc를 따라 필터 소스 작성 :symfony 2 사용자 정의 필터
public function getFilters()
{
return array(
new \Twig_SimpleFilter('auctionLenght', array($this, 'auctionLenght')),
);
}
public function auctionLenght($creDate,$expDate)
{
$datetime1 = new \DateTime($creDate);
$datetime2 = new \DateTime($expDate);
$interval = $datetime1->diff($datetime2);
$data = date('Y-m-D', $interval);
return $data;
}
public function getName()
{
return 'eforma_extension';
}
가 지금은 템플릿을 사용하려면 :
{{entity.creDate |auctionLenght(entity.expDate)}}
을하지만 오류가 모든 시간 얻을 :
예외가있다을 템플릿의 렌더링 중에 throw됩니다 ("DateTime :: _ construct()는 매개 변수 1이 문자열 인 객체가 필요합니다")
공용 함수 경매 길이 (\ DateTime $ creDate, \ DateTime $ expDate)에 \ DateTime 유형 힌트를 전달하려고했지만 작동하지 않습니다. 어떻게 수리 할 수 있습니까? 간단한 문자열 필터 추가 기능이 잘 작동하기 때문에 필터가 올바르게 등록되었습니다.
감사
public DateTime::__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]])
당신은 필터 기능에 문자열로creDate
및exprDate
객체를 포맷하고 날짜에 전달할 수 있습니다(
string $time = "now"
에 기본값) arguemtn되지 객체 .. 문자열을 수신 . 그럼 나는 엔티티에서 내 데이터를 넣었습니다. entity.creDate는 Doctrine DateTime 객체입니다. 그 변화가 어떤 생각일까요? 나는 당신의 솔루션과 재생을 시도합니다. – user2217288데이터가 Doctrine으로 가져온 데이터라면 하나의 간단한 선입니다. return $ creDate-> diff ($ expDate) -> 형식 ('% a days'); 도움을 주셔서 감사합니다 – user2217288
@ user2217288 _ShonM_ 이미 귀하의 질문에 대답, Doctrine datetime 개체로 씁니다 datetime 개체로 가져옵니다 형식을 datetime으로 설정하면, 그 이유는 당신이 그들을 포맷 할 필요가 DateTime 객체에 전달, 당신은 그들을 사용할 수 있습니다 직접 .. 내 대답 +1. – xurshid29