2011-11-07 34 views
0

我已經保存在我的MySQL數據庫的日期,我可以鍛鍊,因爲像這樣的日期的日子裏,php strtotime和工作多年?

ceil(time() - strtotime($account['joined'])/60/60/24 % 365); 

但我怎麼能制定出這些年來,因爲年是時間的最高形式,因爲後那是千禧年等等?

變量是一個如:

2011-10-06 22:01:57 

感謝

+0

你可以發佈'$ account ['joined']'值的示例 – Mob

+0

閏年呢? –

回答

1

使用date("Y")

<?php 
$time = strtotime("1 Jan 2001 1:11:11"); 
echo "Years since time: ".(date("Y") - date("Y", $time)); 

http://sandbox.phpcode.eu/g/220fe/1

+0

好的將嘗試這個,謝謝 – cgweb87

+0

這將工作幾分鐘,幾小時,幾秒鐘,是否更好地使用它比我的例子? – cgweb87

1

你總是可以使用date("Y", $timestamp)

,併爲您的問題,您可以使用date_diff,

$datetime1 = new DateTime('2009-10-11'); 
$datetime2 = new DateTime('2009-10-13'); 
$interval = $datetime1->diff($datetime2); 
echo $interval->format('%R%a days'); 
2

可以使用MySQL數據庫來獲取時間跨度。

您可以在查詢中使用DATEDIFF來減去當前日期的連接日期,並且可以通過這種方式獲得時間跨度。

此功能說明如下:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff

希望它可以幫助

+0

想到這個,但我的網站是沉重的數據庫調用,並佔用了很多的開銷,而渲染PHP不喜歡使用PHP,謝謝雖然:) – cgweb87

+1

編碼在數據庫方面有好處:減少錯誤因爲一切都基於一個時鐘(數據庫時鐘如果與Web服務器分開),最小化流量(不會傳遞太多參數)以及更快的查詢。如果將經常運行的語句放在存儲過程中,可以加快查詢速度。 [鏈接](http://stackoverflow.com/questions/208976/are-stored-procedures-faster-for-simple-queries) – shimofuri

0

如果你可以從MySQL側進行計算,使用內置date/time functions。例如假設表T包含一個日期欄d,並希望將其對當前日期的天數來比較:

SELECT 
    TIMESTAMPDIFF(DAY, D, CURDATE()) AS 'days_elapsed' 
FROM T 

可以在TIMESTAMPDIFF的第一個參數更改爲以下任何一項:FRAC_SECOND (微秒),SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,QUARTER或YEAR。