我在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 ::语句可能不会转换这些值。 –