Reputation: 4232
How to add days to datetime field in Laravel?
For example,
there is a updated_at
field in articles
table:
$article = Article::find(1);
$updated_at=$article->updated_at;
I want to add 30 days to updated_at
field.
In Carbon
, it could be done like this:
$expired_at=Carbon::now()->addDays(30);
But how to do it in above example?
Upvotes: 9
Views: 20998
Reputation: 101
Without Carbon
For full example go to - https://www.php.net/manual/en/datetime.add.php
The below code is for only add days
$d->add(new DateInterval('P10D'));
<?php
$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P10D'));
echo $date->format('Y-m-d') . "\n";
?>
Upvotes: 0
Reputation: 9942
Since updated_at
and created_at
fields are automatically cast to an instance of Carbon
you can just do:
$article = Article::find(1);
$article->updated_at->addDays(30);
// $article->save(); If you want to save it
Or if you want it in a separate variable:
$article = Article::find(1);
$updated_at = $article->updated_at;
$updated_at->addDays(30); // updated_at now has 30 days added to it
Upvotes: 14
Reputation: 38502
Have you tried like this with raw php? If you want you can change your datetime format inside first parameter of date()
$updated_at=date('Y-m-d H:i:s', strtotime('+30 day', $article->updated_at));
Upvotes: 2
Reputation: 8078
you can use Carbon::parse
$article = Article::find(1);
$updated_at=Carbon::parse( $article->updated_at)->addDays(30);
Suppose if updated_at
is 2017-09-30 22:43:47
then output will be 2017-10-30 22:43:47.000000
Upvotes: 3