2011-11-01 1 views
-1

내 SQL 데이터베이스에 타임 스탬프를 사용하고 있습니다. 나는 현재 투표 시스템을 만들고 있는데, $ stamp가 2 일보다 오래되면 코드를 실행할 수있는 if 문을 누구나 만들 수 있습니까? 나는 몇 시간 동안 노력해 왔으며 일을 시작하는 것처럼 보일 수 없다. 감사!PHP 타임 스탬프 및 if 문

+0

타임 스탬프는 어떤 형식입니까? 숫자 유닉스 타임 스탬프 또는 SQL 타임 스탬프 등? –

+0

@Ben Swinburne 유닉스 타임 스탬프와 mysql 타임 스탬프의 차이점은 무엇입니까? –

+0

MySQL의 타임 스탬프는 YYYY-MM-DD HH : MM : SS와 비슷하며 일반적으로 TIMESTAMP 유형의 열과 연관되며 Unix 타임 스탬프는 신기원 이후의 초 수이며 일반적으로 1319533396과 유사하게 저장됩니다. INT 또는 BIGINT 타입의 필드. –

답변

3

PHP를 대신 할 필요는 없습니다. 데이터베이스가 대개보다 효율적으로 작업하게하십시오.

SELECT * FROM votes WHERE vote_timestamp <= DATE_SUB(NOW(), INTERVAL 2 DAY); 

나는 또한 UNIX_TIMESTAMP, TIMESTAMP, DATETIMEDATE 컬럼과 함께 작동한다고 믿습니다. MySQL이 자동으로 변환을 수행하고이를 결과 세트에 적용하기 때문입니다.

+0

$ get_stamps =는 mysql_query() "vote_timestamp <= DATE_SUB (NOW(), INTERVAL 2 일 48hrvotes * FROM" [ 'time']; \t \t} 어떻게 작동하지 않는 것입니까? – syntheticsaint

+0

'DATE_SUB' 함수에서 닫는 괄호가 없습니다. – Andre

0

time()은 현재 시간 스탬프를 제공합니다. 이 숫자는 초입니다. 따라서 타임 스탬프가 time()-(2*24*60*60)보다 적은 모든 것을 찾아야합니다.

b.t.w 일반적으로 사람들은 당신이 시도한 것을 보여주지 않으면 (또는 심지어 시도해도) 도움을 주저하고 있습니다. 이 같은

0

뭔가 당신이 유닉스 타임 스탬프를 사용하는 경우 :

$two_days_ago = strtotime('-2 days'); 
$sql = 'SELECT * FROM table WHERE timestamp_column < ' . $two_days_ago; 

당신의 열은 MySQL의 타임 스탬프 (다른 언급이) 좀 더 같이 할 경우 :

$two_days_ago = date('Y-m-d H:i:s', strtotime('-2 days')); 
$sql = "SELECT * FROM table WHERE timestamp_column < '" . $two_days_ago . "'";