Some Useful Timestamp Tricks of Laravel
Hello artisan, today I’m going to share som timestamp tricks in Laravel. Let’s have a look:
Table of Contents
- Change Column Name
- Change Date/Time Format
- Order by Latest and Oldest
- Update Without Updating updated_at Column
- Update updated_at Column Only
- Carbon Supported
- Disable Timestamp
Change Column Name
If our database contains different columns instead of created_at
& updated_at
, we can define the names as timestamp in the model.
class User extends Model
{
const CREATED_AT = 'created_datetime';
const UPDATED_AT = 'updated_datetime';
// other properties and methods
}
Change Date/Time Format
By default, timestamps are formatted as 'Y-m-d H:i:s'
. If you need to customize the timestamp format, set the $dateFormat
property on your model. This property determines how date attributes are stored in the database:
class User extends Model
{
protected $dateFormat = 'U';
// other properties and methods
}
Order by Latest and Oldest
We can order data by timestamp using two shortcut methods. These are latest()
and oldest()
methods.
// latest
User::latest()->get();
// oldes
User::oldest()->get();
Update Without Updating updated_at Column
Normally, the update eloquent method automatically updates current timestamps. We can easily stop updating timestamps during updating data like this:
$user = User::find(1);
$user->email = "[email protected]";
$user->timestamps = false;
$user->save();
Update updated_at Column Only
This trick is the opposite of previous trick. We can set new value to only updated_at column.
$user = User::find(1);
$user->touch();
Carbon Supported
Without converting to Carbon instance, we can directly perform Carbon operations on timestamps. Have a look at this example:
# example 1
$user->created_at->addDays(7);
# example 2
$user->updated_at->diffForHumans()
Disable Timestamp
Suppose, we have a table that doesn’t contain created_at & updated_at columns. In this situation, if we run eloquent query, Laravel shows error. To solve, we have just disable timestamps for the model.
class User extends Model
{
public $timestamps = false;
// other properties and methods
}
That’s it. Thanks for reading.
Md Obydullah
Software Engineer | Ethical Hacker & Cybersecurity...
Md Obydullah is a software engineer and full stack developer specialist at Laravel, Django, Vue.js, Node.js, Android, Linux Server, and Ethichal Hacking.