2013-07-08 1 views
-1

양식에서 두 날짜가 mm/dd/yyyy 형식으로 표시됩니다. 이제이 두 날짜를 동등한 UNIX 타임 스탬프 값으로 변환하고이 범위에 속하는 데이터베이스에서 레코드를 가져 오기위한 SQL 쿼리를 만듭니다. 이것에 대한 작은 코드 snippett은 아래와 같습니다 :PHP의 UNIX 타임 스탬프에서 정확한 날짜를 가져 오는 방법은 무엇입니까?

if($request['from_date']!='' && $request['to_date']!='') { 
      $from_date = clean($request['from_date']); 
      $to_date = clean($request['to_date']);  

      list($fd, $fm, $fy) = explode('/', $from_date); 
      list($td, $tm, $ty) = explode('/', $to_date); 

      $mk_from_time = mktime(0, 0, 0, $fm, $fd, $fy); 
      $mk_to_time = mktime(0, 0, 0, $tm, $td, $ty); 
$date_range = " (user_reg_date BETWEEN ".$mk_from_time." AND ".$mk_to_time.") "; 
} 

형식을 바르게 쿼리는 다른 코드를 생성하고 나에게 결과를 제공됩니다. 하지만 내 문제는 내가 두 날짜를 입력 할 때입니다. 01/07/2013 and 31/07/2013 그리고 DB에서 레코드를 가져 오면 실제로는 레코드 from date 01/07/2013 to date 30/07/2013이 제공됩니다. 실제로 그것은 31/07/2013까지 기록을 제공 할 것으로 예상됩니다. 만약 내가 01/08/2013로 데이트한다면, 내 요구 사항에 따라 31/07/2013까지 레코드를 반환하고있다. 단기적 수단은 to date이며 하루 뒤쳐져 있습니다. 어느 누구도이 문제를 해결할 수 있습니까? 미리 감사드립니다. 한 가지 더 중요한 점은 DB의 user_reg_date 필드에 UNIX timestamp 형식의 모든 값이 포함되어 있다는 것입니다.

답변

1

사용하여 시도

$ mk_to_time = mktime은 (23, 59, 59, $의 TM, $의 TD, $ 타이);

+0

답장을 보내 주셔서 감사합니다. 하지만 코드 스 니펫 (snippett)을 어디에 사용해야하는지 설명해 주시겠습니까? from date 또는 date 또는 둘 다. – PHPLover

+0

'$ mk_to_time = mktime (0, 0, 0, $ tm, $ td, $ ty)''$ mk_to_time = mktime (23, 59, 59, $ tm, $ td, $ ty); ' – RiggsFolly

+0

당신이 말한대로 줄을 바꾸었지만 여전히 5 시간 30 분 뒤져 있습니다. 2011 년 7 월 31 일 수요일에 2013 년 7 월 31 일 18시 29 분 59 초 GMT를 제공하는 사용자가 읽을 수있는 형식으로 변환합니다. 5 시간 30 분 뒤쳐져있는 걸 의미합니다. 이 일에서 나를 도울 수 있니? – PHPLover

관련 문제