シナリオ:データベースにレコードが入力されました。
私は次の方程式を理解しようとしています:
- レコードが追加されてからの時間数を取得する方法。
- レコードが追加されてから午前 0 時までの残り時間を取得する方法。
これらの時間を考えると:
- 日時: 2012-08-22 20:11:20
- タイムスタンプ: 1345684280
- 真夜中 今夜: 2012-08-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'));