前回の投稿からの経過時間を正確に示している StackOverflow が行っていることを実行したいと思います。ただし、問題があります。SO は、最後の投稿からの経過時間に基づいて特定の情報を表示します。投稿が 1 時間以内の場合は、何分前かなどを投稿します。
次の形式の MYSQL DateTime フィールドを使用しています。
2012-09-19 13:28:45
上記を時間と比較したいNOW
ので、PHPのstrtotime
関数を使用してその時間を変換し、まとめた関数(以下)で2つの日付を比較してみました。確かに、これはおそらくこれを行うための最悪の方法ですが、PHPDate
とDateTime
関数について読んだ後、私は非常に混乱し始めています。
function get_date_format($strToTimeString){
$minute = 60;
$hour = $minutes * 60;
$day = $hour * 24;
$week = $day * 7;
$month = $week * 4;
$year = $month * 12;
$timeNow = strtotime("now");
$timeDiff = $timeNow - $strToTimeString;
if($timeDiff > $minute){
if($timeDiff > $hour){
if($timeDiff > $day){
if($timeDiff > $week){
if($timeDiff > $month){
if($timeDiff > $year){
// Years ago
}
else{
// Months ago
}
}
else{
// Weeks ago
}
}
else{
// Days ago
}
}
else
{
// Hours ago
}
}
else{
// Minutes ago
}
}
else{
// Seconds ago
}
}
これを行うより良い方法はありますか?上で述べたように、使用しようとすると運が悪かったDateTime->diff
どんな助けでも本当に感謝しています。