Disable Timestamps
If your DB table doesn't contain timestamp fields created_at and updated_at, you can specify that Eloquent model wouldn't use them, with $timestamps = false property.
class Company extends Model {
public $timestamps = false;
}
Change Timestamp Column Names
const CREATED_AT = 'create_time';
const UPDATED_AT = 'update_time';
Change Timestamp Date/Time Format
/**
* The storage format of the model's date columns.
*
* @var string
*/
protected $dateFormat = 'U';
Order by Timestamp with latest() and oldest()
Instead of:
User::orderBy('created_at', 'desc')->get();
You can do it quicker:
User::latest()->get();
Instead of:
User::orderBy('created_at', 'asc')->get();
You can do it quicker:
User::oldest()->get();
Update without touching updated_at
$user = User::find(1);
$user->profile_views_count = 123;
$user->timestamps = false;
$user->save();
Set new value to ONLY updated_at column
So, instead of:
$user->update(['updated_at' => now()]);
You can use a shorter method:
$user->touch();
Timestamp Fields are Carbon Automatically
By default, both created_at and updated_at are casts as $dates of Eloquent model, so you can perform Carbon operations on them, without converting to Carbon instance.
Example:
$user->created_at->addDays(3);