2013-07-19 3 views
2

YII CGridView에서 제공하는 기본 검색을 사용하고 있습니다. 검색 기준에 텍스트 날짜 필드가 있습니다. 데이터베이스에서 날짜와 전달 된 날짜를 비교하려고하지만 일치하지 않습니다. 데이터베이스에 저장된 날짜의 형식을 데이터베이스에있는 날짜도 변환해야하며 날짜를 비교하기 전에 시간을 제거해야하지만이 작업을 수행하는 방법을 알 수는 없습니다.YII에서 비교하기 전에 날짜 형식을 변환하는 방법?

기본 검색 기능()에서 비교하기 전에 날짜를 변환하려는 선입니다. 나는 전환을 시도했지만 이것이 효과가없는 것 같습니다.

$criteria->compare(date("Y-m-d", strtotime('application_date')), 
date("Y-m-d", strtotime($this->application_date)),true); 

도움 주셔서 감사합니다. 원하는 형식으로 전으로 데이터베이스에 현재까지 날짜를 포맷

+0

이 문장 내에서 날짜 형식을 지정 했습니까? – shanavascet

+0

예, 시도했지만 데이터베이스의 날짜가 아니라 전달하는 날짜의 형식 만 지정할 수 있습니다. 비교하기 전에 데이터베이스에서 가져온 날짜를 형식화해야합니다. –

+0

입력 날짜를 데이터베이스 형식으로 포맷하는 이유는 무엇입니까? – Dale

답변

4

아래에 표시, 당신은 다음과 같은 mysql을의 DATE_FORMAT 기능을 사용할 수 있습니다

$criteria->compare('DATE_FORMAT(application_date,"%Y-%m-%d")',date("Y-m-d", strtotime($this->application_date)),true); 
+0

감사합니다 !!! !!! 이것은 매력처럼 작동했습니다. –

0

시도가이 일을하는 한 가지 방법이있다

$criteria->compare('date1',date("d-m-Y",strtotime($this->date1),true); 
+0

실제로 데이터베이스 기본 날짜에는 시간이 있고 비교하는 동안 시간 부분을 제외하고 싶습니다. –

+0

나중에 데이터베이스 항목의 형식으로 입력 한 날짜를 변환하면 – Ninad

관련 문제