2013-06-04 29 views
2

在PHP中,如果我有一個datetime對象或timestamp作爲對象的屬性,我怎樣才能在PHP中記錄粗略的年齡。如何獲得時間戳/日期時間對象的粗糙年齡?

因此,而不是一個格式化的日期字符串,它說類似
"about 1 hour ago", "3 days ago", "1 year ago"
有點像redmine的任務評論,例如。

這個過程叫什麼?
我試圖尋找年齡和datetime,並不斷尋找代碼來獲取某人的出生年齡,這不是我正在尋找的。

+1

它通常被稱爲'模糊日期' – naththedeveloper

回答

1

如果您有2個對象。您需要將第一個對象轉換爲時間戳,第二個對象是time();

time() - 返回自從Unix Epoch(1970年1月1日00:00:00 GMT)以來秒數測量的當前時間。

然後你減去時間()與你想要的日期,你得到的差異在幾秒鐘內。爲了從秒分鐘需要通過60劃分它,使你需要60 * 60 = 3600等來劃分它

$secondsAgo = time() - $timeStamp; 
$minutesAgo= (time() - $timeStamp)/60; 
$hoursAgo= (time() - $timeStamp)/60*60; 
$daysAgo= (time() - $timeStamp)/60*60*24; 

要改變字符串時間戳小時,你可以用strtotime()

另一個解決方案是使用日期時間對象上的diff()。

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

這將返回DateInterval對象裏面有很多是公共

  • Ÿ的年數性質的。
  • m月數。
  • d天數。
  • h小時數。
  • i分鐘數。
  • s秒數。
相關問題