2013-07-01 14 views
0

시작일과 종료일 범위를 사용하여 MySQL을 쿼리하려고합니다. 순간 내 변수는 다음과 같습니다 : 00 : 00 '날짜 범위 시간 쿼리

$begin = $_POST['begin']; 
$begin = date('Y/m/d H:i:s', strtotime($begin)); 
$end = $_POST['end']; 
$end = date('Y/m/d H:i:s',strtotime($end)); 

strtotime($begin)는 argeeable 타임 스탬프 '00을 생산하고 있습니다. 그러나 strtotime($end) 출력 '11 : 59 : 59 '사용자가 내 양식에서 날짜 범위를 사용하여 특정 날짜를 쿼리 할 수 ​​있도록 싶습니다. 누군가가 내 양식의 $end 날짜 변수를 사용하고 싶다는 것을 명심하면서 '23 : 59 : 59 '로 시간을 정하는 방법을 친절하게 보여줄 수 있습니까?

PHP에서 내 쿼리는 다음과 같습니다

"수주에 OrderID, 수량, 델, 타임 스탬프를 선택 WHERE '$ 시작'과 '$ 끝'BETWEEN 타임 스탬프 ";

고맙습니다.

+0

'23 : 59 : 59'이 아니라'11 : 59 : 59'를 실제로 사용합니까? – Barmar

+0

왜 11시 59 분 59 초가 아닌 23시 59 분 59 초입니까? $ _POST [ 'begin'] 및 $ _POST [ 'end']에 대해 어떤 데이터가 제공됩니까? DB 쿼리 샘플 및 쿼리 할 데이터 정렬을 표시 할 수 있습니까? 나는 이러한 질문을 할 가능성이있다. 당신은 인공적인 종료 날짜를 만들 필요가 없다. 단지 DB를 적절하게 질의 할 필요가있다. –

+0

사과, 나는 23:59:59를 의미했다. $ _POST [ 'begin'] 및 $ _POST [ 'end']은 전체 날짜입니다 (즉, 2013 년 2 월 7 일). 그러나, 나는 타임 스탬프를 쿼리하고있다. – user2540566

답변

0

한 strtotime은 단순히 정수 타임 스탬프를 생성, 그래서 당신은

$end = date('Y/m/d H:i:s', strtotime($end) + 86400 - 1); 

후, "내일"을 얻을 당신이 시작한 일 자정 전에 순간을 얻을 1 초를 제거하는 일을 추가 할 수 있습니다. 아직

또는 간단 :

$end = date('Y/m/d', strtotime($end)) . ' 11:59:59'; 

은 수동으로 시간 부분에 자신을 압정, 적절한 날짜를 생성한다.

당신이 하드 코드에 시간을하려면
+0

많은 도움을 주신 데 대해 감사드립니다. – user2540566

0

, 그냥을 연결 :

$end = date('Y/m/d', strtotime($end)) . ' 11:59:59'; 
0

strtotime는 타임 스탬프를 반환합니다. (1 일 - 일초)는 86,399을 추가 할 수 있습니다

하거나 변수에 시간 정보가없는 경우 너무

또는 strtotime($end . "+ 23 hours") 당신이 그냥 직접 추가 할 수있는 한 strtotime + 구문을 사용할 수 있습니다 strtotime($end . "+ 23:59")

당신의 다른 옵션은 더 많은 유연성을 제공하는 datetime 객체로 변환하는 것입니다.