格式化json给出的日期

时间:2016-11-25 10:37:35

标签: javascript php json ajax symfony

我搜索一种格式化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;

2 个答案:

答案 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,并且所有视图都具有灵活性,可以选择日期的演示格式。