2012-12-29 3 views
0

필드를 현재 시간과 비교하는 데 약간의 문제가 있습니다.PHP가 DateTime과 현재 시간을 비교합니다.

저는 MySQL에 강의의 시작 시간과 종료 시간을 기록하는 두 개의 필드가 있습니다.

내가하려는 것은 현재 시간이 시작 시간과 종료 시간 동안인지 확인하는 것입니다.

$ starttime 및 $ endtime은 DateTime 형식입니다.

$now = time(); 
$compare = mysql_query("SELECT * FROM lecture WHERE strtotime(starttime) < '$now' AND '$now' < strtotime(endtime)"); 

을하지만 그것은 작동하지 않습니다

코드

여기 있어요.

나는이 시도 :

$now = new DateTime; 
$compare = mysql_query("SELECT * FROM lecture WHERE starttime < '$now' AND '$now' < endtime"); 

을하지만 너무 끊었다.

아무도 그것을 실현하는 방법을 말해 줄 수 있습니까? 많은 감사합니다.

+0

'starttime' 열의 데이터 유형은 무엇입니까? 샘플 레코드를 줄 수 있습니까? mysql에서 'STR_TO_DATE'를 사용하여 날짜 (*와 함께 *)로 변환 할 수 있습니다. –

+2

[새 코드에서 mysql_ * 함수를 사용하지 마십시오.] (http://stackoverflow.com/q/12859942) . 그것들은 더 이상 유지 보수되지 않으며 비추천 프로세스가 시작되었습니다. [red box] (http://php.net/mysql-connect)를보십시오. 대신 [prepared statements] (http://en.wikipedia.org/wiki/Prepared_statement)에 대해 알아보고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http : // php. net/mysqli); [이 기사] (http://php.net/mysqlinfo.api.choosing)는 어떤 결정을 내리는 데 도움이 될 것입니다. PDO를 선택하면 [여기에 좋은 자습서가 있습니다] (http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers). – vascowhite

+0

@JW : 형식은 DateTime입니다. 2012-12-29 08:32:00 – Matt

답변

7

사용 BETWEEN

SELECT * 
FROM lecture 
WHERE NOW() BETWEEN starttime AND endtime 
+1

Thx! 그것은 매력처럼 작동합니다. – Matt

1

= $이 비교는 mysql_query ("강좌 * FROM WHERE STARTTIME < mysql_function AND mysql_function < ENDTIME");

다음의 기능 중 하나

1) SYSDATE()를 mysql_function 바꾸기 : 2012- 예로서 출력 : 출력 예 2012년 12월 29일 16시 3분 20초

2) CURDATE()로서 12-29

3) UNIX_TIMESTAMP() : 질의에 상기 하나의 기능을 대체 'startime 및 종료 시각'형식에 따라 1,356,777,278

로 출력 예.

+0

네, 훌륭합니다! CURDATE()가 오늘의 00:00:00을 나타 냅니까? – Matt

+0

@Matt : CURDATE()는 현재 날짜입니다. 귀하의 생각은 정확합니다. –

+0

많은 thx, Mahesh.D. – Matt

관련 문제