2014-10-08 74 views
0

我有腳本來比較登錄日期/時間和註銷日期/時間之後,這兩個值之間的差異被添加到MSSQL 2005表中的totaltime列。例如:如果用戶僅在幾秒鐘內聯機,則會添加例如約98個unix時間戳的值。那麼如何將該值作爲人類閱讀顯示在網站上:如果可能,請以天/分/秒爲單位?如何計算以天/分/秒爲單位的unix時間戳?

非常感謝您檢查我的問題。將不勝感激幫助我。

這是我的排名腳本,我想包括:

function TotalTimeRank() 
{ 
    $db = $this->database[GDB]; 
    $num_rows = $db->doQuery('SELECT TOP 100 ID, Name, (SELECT SUM(CoolPoint) FROM DATA WHERE DATA.User = INFO.User AND DATA.Auth IN(1, 2)) as Points FROM INFO WHERE INFO.User NOT IN (1199,16300) ORDER BY Points DESC'); 
    if ($num_rows == -1) 
    { 
     $db->getError(); 
     return; 
    } 

    $n = 1; 
    $content = ''; 
    while ($row = $db->doRead()) 
    { 
     $data = array('rank-id' => $row['Num'], 'rank-pos' => $n++, 'rank-name' => $row['Name'], 'rank-points' => number_format(intval($row['Points']))); 
     $content .= Template::Load('pointrank-' . ($n % 2 == 1 ? 2 : 1), $data); 
    } 

    $this->content = Template::Load('total_pointrank', array('ranks' => $content)); 
} 

那麼,什麼是包括什麼,我想我的等級上面的腳本,所以我可以在網上每個用戶的基礎上顯示總時間的最佳方法我的data表中的totaltime列?我知道如何包含它,但我很困惑如何將它轉換爲上面這個函數中的人類閱讀。

+0

你使用的是PHP嗎? – 2014-10-08 19:10:56

+0

是的,用我想包括總時間的腳本更新了我的帖子。 – MobEn 2014-10-08 19:23:23

+0

這可能會幫助你:http://stackoverflow.com/questions/2059603/php-function-to-convert-unix-timestamp-into-minutes-or-hours-or-days-like-digg – 2014-10-08 19:25:00

回答

1

這應該滿足您的需求:

$timestamp_diff = 456; // your timestamp difference here 
echo secondsToTime($timestamp_diff); 

這個功能:

function secondsToTime($seconds) { // returns days/hours/minutes/seconds 
    $dtF = new DateTime("@0"); 
    $dtT = new DateTime("@$seconds"); 
    return $dtF->diff($dtT)->format('%a/%h/%i/%s'); 
} 

基於this

編輯:與您現有的腳本把他們放在一起: (我猜?)

function TotalTimeRank() 
{ 
    $db = $this->database[GDB]; 
    $num_rows = $db->doQuery('SELECT TOP 100 ID, Name, (SELECT SUM(CoolPoint) FROM DATA WHERE DATA.User = INFO.User AND DATA.Auth IN(1, 2)) as Points FROM INFO WHERE INFO.User NOT IN (1199,16300) ORDER BY Points DESC'); 
    if ($num_rows == -1) 
    { 
     $db->getError(); 
     return; 
    } 

    $n = 1; 
    $content = ''; 
    while ($row = $db->doRead()) 
    { 
     $data = array('rank-id' => $row['Num'], 'rank-pos' => $n++, 'rank-name' => $row['Name'], 'rank-points' => $this->secondsToTime(intval($row['Points']))); 
     $content .= Template::Load('pointrank-' . ($n % 2 == 1 ? 2 : 1), $data); 
    } 

    $this->content = Template::Load('total_pointrank', array('ranks' => $content)); 
} 

function secondsToTime($seconds) { // returns days/minutes/seconds 
    $dtF = new DateTime("@0"); 
    $dtT = new DateTime("@$seconds"); 
    return $dtF->diff($dtT)->format('%a/%i/%s'); 
} 
+0

謝謝,但是我包括我的主要帖子與我的腳本,我想包括它。我知道如何顯示數字,但不知道如何在上面的函數中實際將其轉換爲人類閱讀。如果你能幫助我,我將非常感激。謝謝 – MobEn 2014-10-08 19:24:02

+0

我剛剛編輯添加您的腳本 – Yoric 2014-10-08 19:37:31

+0

謝謝,真棒。我已經編輯了一下,包括我自己的格式等。非常感謝和答案是100%接受+1投票。再次感謝! – MobEn 2014-10-08 19:55:25

相關問題