2014-12-23 1 views
0

항상 통과하기 :시간이 내가 페이지를 여기</p> <p><img src="https://i.stack.imgur.com/jvGkF.png" alt="enter image description here"></p> <p>코드를로드 할 때 내가 무엇입니까 무엇 0

echo "<b>Requested:</b><br>".round(abs(date("Y-m-d H:i:s") - date("Y-m-d H:i:s", strtotime($row['timestamp'])))/60,2)." minute(s) ago<br>"; 
echo "<b>Current Time:</b><br>".date("Y-m-d H:i:s")."<br> "; 
echo "<b>Requested Time:</b><br>".date("Y-m-d H:i:s", strtotime($row['timestamp']))."<br> "; 

내 문제는 항상 0 분 요청한 말한다이다 그 이미지는 7 분 전에 계산되어야한다고 보여줍니다. 내가 위의 링크에있는 코드가 다른 형식으로 그걸로 엉망이 되려고했는지 보여 주려고했는데 어떤 도움이 필요했기 때문에 거대한 숫자를 주었다.

+1

이는 MySQL의에서 가져온 중입니다 그렇다면,'timestamp' 컬럼에 대한 정확한 데이터 타입은 무엇입니까? (TIMESTAMP라고 가정) – Jhecht

+0

그리고 MySql 페치이고 데이터 유형이 날짜 인 경우 PHP와 MySQL이 동일한 날짜 형식을 사용하는지 확인하십시오. –

답변

1

날짜 함수 사용자가 제공 한 형식으로 문자열을 만듭니다. ': MM : SS YYYY-MM-DD HH'이 (가) 이미이 $row['timestamp']는 형식으로되어 있다고 가정이

$previousDate = $row['timestamp']; 
$startdate = new DateTime($previousDate); 
$endDate = new DateTime(); 
$interval = $endDate->diff($startdate); 

$int = $interval->format('%i'); 
echo "<b>Requested:</b><br>" . $int ." minute(s) ago<br>"; 

에 대한 날짜 객체를 사용합니다. 유닉스 스타일의 타임 스탬프를 들어,

$previousDate = new DateTime('@' . $row['timestamp']); 
+0

그게 효과가 있지만 문제는 지금은 분을 계산하지만 나던가 시간/일 요법을 동일하게하므로 1 시간 17 분이 아니라 단지 77 분 전에 무슨 뜻인지 알 수 있습니까? –

+0

[php의 DateInterval] (http://php.net/manual/en/dateinterval.format.php)에 대한 설명서를 확인하십시오. 형식 메서드 내에서 원하는 문자열을 지정할 수 있습니다. 원래 코드가 가진 것이기 때문에 % i를 몇 분 동안 선택했습니다. – Robbert

1

이 당신을 위해 작동합니다 당신의 구조에 앰퍼샌드를 사용하려면 :

출력
<?php 

    //$row['timestamp'] = 1419272871; As an example 

    echo "<b>Requested:</b><br>".round(abs(strtotime(date("Y-m-d H:i:s")) - strtotime(date("Y-m-d H:i:s", $row['timestamp'])))/60, 2)." minute(s) ago<br>"; 
    echo "<b>Current Time:</b><br>".date("Y-m-d H:i:s")."<br> "; 
    echo "<b>Requested Time:</b><br>".date("Y-m-d H:i:s", $row['timestamp'])."<br> "; 

?> 

:

Requested: 
1686.53 minute(s) ago 
Current Time: 
2014-12-23 23:34:23 
Requested Time: 
2014-12-22 19:27:51 
관련 문제

 관련 문제