-1

SQLデータベースから「日数」を使用して、より人間に優しい形式で返すにはどうすればよいですか?

たとえば、多くのユーザーにとって、この数値はかなり高くなります。「438 日」ではなく、「1 年 2 か月 1 週間 5 日」と表示したいと思います。

ありがとうございました!

4

2 に答える 2

2
Select floor(yourfield/365) + ' year(s), ' + 
       floor(mod(yourfield,365)/30) + ' month(s), ' + 
       floor(mod(mod(yourfield,365),30)/7) +' week(s), ' + 
       floor(mod(mod(mod(yourfield,365),30),7)) + ' day(s)'
FROM table

assumes + is valid operator in mySQL for string concat.
assumes 1 year = 365 days
assumes 1 month = 30 days
assumes 1 week = 7 days

月の日数やうるう年を考慮した開始日/終了日がわからない場合、これは無駄なことです。

于 2013-01-25T18:33:00.910 に答える
-2

あなたは使用することができstrtotime()ますDateTime

$time = strtotime("438 days ago");
$past = new DateTime(date('Y-m-d', $time));
$present = new DateTime(date('Y-m-d', time()));
$difference = $past->diff($present);
echo $difference->format('%a days %y years');

http://php.net/manual/en/function.date-diff.php

于 2013-01-25T18:14:08.953 に答える