Reputation: 1
I am getting the wrong date time returned in my Symfony 4 project.
When I register an Article
, I set a new DateTime
to know when it was created:
$article->setCreatedAt(new \DateTime());
This is how I get the object in Symfony:
public function getArticleByIdAction(Article $article) {
$json = $this->serializer->encode($article, 'json');
return $this->response->fromJsonString($json);
}
And this is the returned json data:
{
"id": 14,
"name": "TestName",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce at egestas turpis, in fringilla dui. Cras fringilla at neque vel dapibus. Ut id purus convallis, tempor nisi vel, laoreet nunc. Sed nunc ipsum, volutpat a ligula sed, accumsan aliquam arcu. Pellentesque volutpat, nisi sed tristique ultrices, nibh tellus tristique mi, sit amet venenatis erat enim eget risus. Maecenas non dolor eleifend, mattis ipsum id, dictum turpis. Nulla est mauris, facilisis et consequat ut, elementum quis ex. Suspendisse tortor eros, rutrum ac vehicula eget, bibendum ac nibh. Sed magna urna, gravida ac pharetra eu, mollis at mi. Praesent ut dolor nec massa malesuada interdum. Cras vel nunc faucibus, porta diam non, ultricies neque. Curabitur tincidunt, lacus at suscipit laoreet, ante mi bibendum dui, nec cursus ipsum libero nec mauris. Morbi tempor faucibus ullamcorper. Maecenas quis rutrum ipsum, ut pretium eros. ",
"createdAt": {
"timezone": {
"name": "Europe\/Berlin",
"transitions": [
{
"ts": -9223372036854775808,
"time": "-292277022657-01-27T08:29:52+0000",
"offset": 3208,
"isdst": false,
"abbr": "LMT"
},
{
"ts": -2147483648,
"time": "1901-12-13T20:45:52+0000",
"offset": 3600,
"isdst": false,
"abbr": "CET"
}
],
"location": {
"country_code": "DE",
"latitude": 52.5,
"longitude": 13.366659999999995989128365181386470794677734375,
"comments": "Germany (most areas)"
}
},
"offset": 3600,
"timestamp": 1552461412
},
"updatedAt": null,
"isActive": true
}
How can I return only the date as it is stored in Mysql?
Upvotes: 0
Views: 170
Reputation: 13635
You're passing in an instance of the class DateTime
, not the actual date and time.
If you just want to pass in the current date and time you can simply do:
$article->setCreatedAt(date('Y-m-d H:i:s'));
Upvotes: 1
Reputation: 230
DateTime is an object so when you encode it as json it is serialising the object. If you just want the date you need to format it.
$date = new DateTime();
$date->format(''Y-m-d H:i:s');
Upvotes: 1