場景:記錄已輸入數據庫。如何用PHP獲得午夜時間的小時數
我試圖找出下列公式:
- 如何獲得的小時數,因爲加入的記錄。
- 如何獲得自添加記錄 以來一直保留到午夜的時間。
鑑於這些時間:
- 日期/時間:2012-08-22 20時11分二十秒
- 時間戳:1345684280
- 今晚午夜:2012年8月23日00:00:00
- 午夜時間戳:1345698000
我覺得就像我在正確的軌道上。只需要一些適當的數學來做計算?我在數學上很可怕。任何幫助或指導,將不勝感激。我不想找人爲我完成這個任務。只是尋找我做錯的建議,或者我可以做得更好。也許可以解釋實現我的目標所需的數學公式。
這是我到目前爲止有:
class tools{
public function __construct(){
}
public function check_time($time, $request){
$time = strtotime($time);
if($request == 'since'){
$theTime = time() - $time;
$prefix = 'Since:';
} elseif($request == 'until'){
$midnight = mktime(0, 0, 0, date('n'), date('j'), date('Y'));
$theTime = $midnight - $time;
$prefix = 'Until:';
}
$tokens = array (
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'minute',
1 => 'second'
);
foreach($tokens as $unit => $text){
if($theTime < $unit) continue;
$duration = floor($theTime/$unit);
return $prefix.' '.$duration.' '.$text.(($duration>1)?'s':'');
}
}
}// EoF tools class
$tools = new tools();
print_r($tools->check_time('2012-08-22 20:11:20', 'since'));
print_r($tools->check_time('2012-08-22 20:11:20', 'until'));
或簡單strtotime('明天')每http://www.php.net/manual/en/datetime.formats.relative.php –
感謝您的解釋。這對我非常有用 – xzdead