2013-08-30 50 views
-3

其實我在一個php網站上工作,用戶在網站上向數據庫中添加了一些條目。在插入時,他添加了一個也存儲在數據庫中的日期字段。現在我希望該條目的年齡(在將該條目保存到數據庫中後經過了多長時間)。 對於我調用一個函數,我通過該日期&然後使用strtotime()函數我得到那個時間在幾秒鐘內。爲了獲得經過的時間,我將從當前時間減去轉換後的時間。 在這裏我遇到了主要問題。它給了我負值。而我在這裏卡住這麼久&我無法弄清楚爲什麼它返回的負值。請幫我解決這個問題。這是我試過的代碼。如何獲得插入到數據庫中的條目和當前時間之間的差異?

function timeSpan($string) 
{ 
$timestamp = strtotime($string); 
$now = time(); 
$timeSpan = $now-$timestamp; 
........... 
........... 
} 

在這裏,我傳遞的日期時間爲$字符串,這是在提交表單時保存在數據庫中的功能。我使用「datetime」類型保存了日期。現在$ timeSpan變量返回一個負值。任何人有任何想法爲什麼它的回報負值?

+0

可能重複的[如何計算使用PHP的兩個日期之間的差異?](http://stackoverflow.com/questions/676824/how-to-calculate-the-difference-between-two-dates-using- php) –

+0

爲什麼在PHP中這樣做 - 數據庫在您讀取條目時已經可以爲您計算。 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html – CBroe

回答

0

嘿傢伙我得到了這個解決方案。實際上該函數返回服務器時間。那個時間取決於服務器的位置。那個時候的回報。所以我指定了我的時區。現在它返回正確的時間。

0

如果你的減法返回一個負值,它的時間()存儲在某種程度上比服務器中的當前時間更新。

time()是自1970年1月1日以來經過的秒數。

如果您保存的時間戳爲111,而您的服務器表示當前時間爲100,您將得到一個負值。

+0

嘿喬治,我明白你在說什麼。但你能告訴我如何解決這個問題嗎? – vickram

+0

好吧,如果你將結果保存到一個變量,檢查該變量是否小於0,然後打印你想要打印什麼,在這種情況下,如「未定義」或什麼都不是。我會轉儲所有日期以查看它們的日期,並知道服務器正在發生什麼。 – JorgeeFG

+0

豪爾赫我想要那個入門的年齡。如果經過的時間出錯,那麼所有進一步的時間都會出錯。我想克服這個問題。我知道如果我給條件> 0,那麼它不會顯示結果。但我想要確切的時間。按照你的風格,我可以得到一個積極的結果,但不會得到正確的結果。你能否說出爲什麼它迴歸負值?請... – vickram

相關問題