我搜索一种格式化json响应给出的日期的方法。目前我可以通过json响应将日期传递给两种格式:
字符串格式:
{"date":"2016-11-25T11:24:54+0100"}
或对象格式:
"date":{"timezone":{"name":"Europe\/Paris","location":{"country_code":"FR","latitude":48.86666,"longitude":2.33333,"comments":""}},"offset":3600,"timestamp":1480069808}}
我必须将这两种json格式中的一种格式化为该格式:
dd/mm/aaaa
,例如:25/11/2016
此操作必须在我的视图中使用jQuery / js完成,或者在发送json响应之前在控制器中完成:
/* $normalizer = new GetSetMethodNormalizer(); here the code for fomat the date into string
$callback = function ($dateTime) {
return $dateTime instanceof \DateTime
? $dateTime->format(\DateTime::ISO8601)
: '';
};
$normalizer->setCallbacks(array('date' => $callback));*/
$normalizer->setIgnoredAttributes(array('article'));
$serializer = new Serializer(array($normalizer), array($encoder));
$dataJSON = $serializer->serialize($data, 'json');
$response = new Response();
$response->setContent($dataJSON);
$response->headers->set('Content-Type', 'application/json');
return $response;
答案 0 :(得分:1)
在DateTime类中使用PHP构建,如
def games(money):
print(request.args.get('money', type=int))
# update the database here
return json.dumps({"result":"operation successfull!"})
答案 1 :(得分:1)
无论您的控制器如何发送数据,您可以在视图(演示文稿)中通过Moment.js对其进行格式化。
例如:
// Your controller date timestamp
const timestamp = 1480070762;
moment().unix(timestamp).format('DD-MM-YYYY');
我建议您的控制器充当API,并且所有视图都具有灵活性,可以选择日期的演示格式。