2016-08-02 77 views
0

將日期轉換爲左星期,小時和月份時遇到問題。時間到月份星期和星期轉換

這裏我的代碼:

$time_elapsed = time() - $createDate; 
$hours  = round($time_elapsed/3600); 
$days  = round($time_elapsed/86400); 
$weeks  = round($time_elapsed/604800); 
$months  = round($time_elapsed/2600640); 

但是,當我顯示例如$months,我得到:565

$createDate =1470165198; // Created with time(); 15 minutes ago 

應該顯示0沒有?因爲他們之間有大約15分鐘的差距。

+0

15之間有什麼區別分鐘?你的意思是'$ createDate',你沒有告訴我們你是如何創建的? – RiggsFolly

+0

用'time()'創建15分鐘前!! –

+1

無法重現此操作。 '$ month'爲0. https://eval.in/616330 – trincot

回答

0

$ CREATE_DATE必須爲整數,不串 從而

$createDate = 1470165198; // no quotes 
+0

由於直接從數據庫中提取,因此沒有引號。 –

+1

好的,你可以在你的文章中調整它嗎? – sietse85

+1

當你嘗試數學運算時,php也會轉換爲整數。 –

0

如果你使用的PHP DateTime類的就可以很容易地這樣

$start = new DateTime('2015-08-01 00:00:00'); // instead of your time() 
$end = new DateTime('2016-09-02 01:01:01'); 

$interval = $start->diff($end); 

echo $interval->format('%y year %m Months %d Days %i Minutes %s Seconds'); 

結果做:

+1 year +1 Month +1 Day +1 Minute +1 Second 

現在,如果您所需的輸出不同,您可以使用f儘可能多地進行調整。

要使用您$createDate = time()戳你可以做初始化DateTime對象: -

$start = new DateTime(); 
$start->setTimestamp($createDate); 
$end = new DateTime('now'); 

$interval = $start->diff($end); 
echo $interval->format('%y year %m Months %d Days %i Minutes %s Seconds'); 

PHP DateTime Manual

相關問題