我在5.2版本已經使用了Laravel diffForHumans()
功能,只有當您使用的是created_at
和updated_at
工作,否則會帶來你的Call to a member function diffForHumans() on string
錯誤。即使你已經使用了created_at
和updated_at
,只要確定你的遷移,你還沒有使用:
$table->timestamp('created_at');
$table->timestamp('updated_at');
但你有沒有根據laravel 差異使用
$table->timestamps();
但由於某種原因,您想對某個既不是created_at
和updated_at
,的列使用diffForHumans()
函數。例如expired_at
,使用碳
我可以總結說的是:
- 首先創建一個新的文件夾可以被稱爲在laravel項目文件夾如測試laravel
Addon
- 那麼文件夾內,您創建一個名爲
Carbon.php
的新文件。
- 裏面的
Carbon.php
文件,輸入:
namespace Carbon;
class Carbon extends \DateTime{
//
}
然後轉到您的控制器如ProductController.php
和碳命名空間添加到文件:
namespace Addon;
namespace App\Http\Controllers;
use Carbon\Carbon;
use ...
class ProductController extends Controller{
$expire_date_string = '2016-07-27 12:45:32';
// Parse date with carbon
$carbonated_date = Carbon::parse($expire_date_string);
// Assuming today was 2016-07-27 12:45:32
$diff_date = $carbonated_date->diffForHumans(Carbon::now());
echo $diff_date; // prints "1 month after"
}
有關Ca的更多信息rbon控制器,請訪問:http://carbon.nesbot.com/docs/
你其實並不需要列出'created_at'和'updated_at'在'$ dates'財產。 Laravel已經在幕後爲你處理這件事。無論如何,你是否可能改變或鑄造屬性? –
或者使用非雄辯模型查詢獲取記錄? DB ::語句可能不會轉換這些值。 –