2014-07-23 2 views
0

나는 최종 프로젝트를위한 기본 게임을 만들고 있습니다. 전체 사이트가 구축되고 사용할 준비가되었지만 하나의 기능을 작동시킬 수는 없습니다.PHP와 MySQL을 사용하여 타임 스탬프 차이를 가져오고 저장하기

시간이 지남에 따라 사용자의 애완 동물의 통계가 낮아집니다.

애완 동물과 거리가 멀수록 길들이기 전까지는 통계가 나옵니다. 지금까지 나는이 코드를 사용하여 로그인 사이의 시간 차이를 계산하기 위해 노력하고있어 :

$mod = mysqli_query($con,"select * from users where user_name='$user_name'"); 
while($row = mysqli_fetch_array($mod)){ 
    $last_login = $row['last_login']; 
    $stored_login = $row['stored_login']; 
    $time_diff = ($last_login-$stored_login); 
    echo $time_diff; 
    $time_mod = mysqli_query($con,"update users set time_mod='$time_diff' where user_name='$user_name'");      
} 

이 모두가 last_loginstored_loginTIMESTAMP 변수를, 그리고 내가에 쉽게 뺄 수 있어야 들었다 해결책을 얻으십시오.

그러나 방정식을 반향하는 경우 반환되는 값은 모두 0입니다. 나는 DATEDIFF을 사용해 보았지만, MySQL은 사용하지 못한다는 오류를줍니다. 나는 지나간 날 수만 필요합니다. - 이것을 가능하게 할 방법이 있습니까?

당신이 (계정을 만들 중 하나 또는 당신이에 로그인 할 수 있습니다) 여기에 베타 버전에 액세스 할 수 있습니다 도움이된다면 :

http://www.eurogabby.com/MyPetMonster/login.php

username: a 
password: a 
+0

'last_login' 및 stored_login은 (는) 타임 스탬프 형식입니까? – TBI

답변

0

방금 ​​시간을 변환해야 이 같은 strtotime 사용

$time_diff = (strtotime($last_login)-strtotime($stored_login)); 
echo $time_diff; 

이것이 작동하지 않으면 전나무 ST는 그들이 한 strtotime하고 다른 변수에 저장 한 다음 지금 당신은 m/d를 기억이

$newtime = date("m/d/Y",$time_diff); 
echo $newtime = month/day/year 

같은 최신 기능을 사용하여 시간에 다시/y는 당신의 선택이 될 것입니다 변환 할 수 있습니다

$last = strtotime($last_login); 
$stored = strtotime($stored_login); 
$time_diff = ($last-$stored); 
echo $time_diff; 

처럼 빼기로 변환 변환 할 날짜 형식

+0

감사합니다! 나는 이제 값을 보여 주지만 그것은 정수이다. 어떻게 다시 시간으로 변환 할 수 있습니까? –

+0

업데이트 된 답변보기 –

+0

좋아,하지만 이제는 정보를 저장하지 않는 것 같습니다. 이것은 아마도 현재 필드를 변경하고있을 때까지 몇 분 밖에 걸리지 않았기 때문에 가능할 수 있습니다. 그러나이 필드가 올바르게 저장되는지 어떻게 확인할 수 있습니까? (그것도 에코 00-00-0000 에코) –

0

어쩌면 시도해 볼 수 있습니다. 행을 시간으로 변환하십시오.

$last_login = strtotime($row['last_login']); 
$stored_login = strtotime($row['stored_login']); 
$time_diff = ($last_login - $stored_login); 
echo $time_diff; 
관련 문제