我有一個腳本,用於檢查日期和時間條目已添加到數據庫,將它與今天的日期和時間進行比較,並輸出最相關單位(分鐘,小時,天) ,周等)。計算時差的PHP問題
問題是,超過一週的任何條目僅顯示爲「6天前添加」。
我明顯有一些問題,我計算時差的方式,但我似乎無法識別它。
這裏是我的代碼:
$date_time_added = $date_added . $time_added;
$current_date_time = $current_date . $current_time;
// Check how many X ago comment was added
$diff = abs(strtotime($current_date_time) - strtotime($date_time_added));
$years = floor($diff/(365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24)/(30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
$hours = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24)/ (60*60));
$minutes = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60)/ 60);
$seconds = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60 - $minuts*60));
// Check if comment was added in last 24 hours
if ($days < '1') {
// Check if comment was added in the last hour
if($hours == 0) {
// Check if comment wass added in the last minute
if ($minutes == 0) {
$when = 'Posted ' . $seconds . ' seconds ago';
} else {
$when = 'Posted ' . $minutes . ' minutes ago'; }
} else {
$when = 'Posted ' . $hours . ' hours ago';
}
} else {
$when = 'Posted ' . $days . ' days ago';
}
感謝您的幫助。
什麼格式是日期/時間?我需要他們做一個測試用例:) – Khez 2011-04-08 10:08:35
日期是Y-m-d,時間是H:我:S。 – 2011-04-08 10:10:01
並請定義'$ yearInSeconds = 365 * 60 * 60 * 24;'並在每次需要時使用它;-) – Capsule 2011-04-08 10:18:54