如何格式化JSON对象?

时间:2014-01-29 12:12:39

标签: json node.js express

我有json对象如下:

var data = [{
    Id: '1285465',
    City: 'Singapore',
    Date: '2014-01-29 17:30:00.0'
    }, {
    Id: '1284429',
    City: 'Kuala Lumpur',
    Date: '2014-01-29 19:00:00.0'   
  }]

我已将其发送到视图但在发送之前我想以2014-01-29格式更改日期。我该怎么做?

data.forEach(function(item){
          moment(item.Date).format("YYYY-MM-DD"); //switched to moment

          });

我正在使用express node.js

3 个答案:

答案 0 :(得分:0)

你可以使用Moment.jshttp://momentjs.com/(起初看起来似乎太多了,但这个图书馆可以在很多场合帮助你)

在您的示例中,要将日期格式化为正确的格式,您可以使用:

  moment(item.Date).format("YYYY-MM-DD");

要安装Moment.js,只需使用:npm install --save moment

但是,我认为在最后一刻(Ohohoh)调整你的日期到显示格式可能是一个好习惯。我的意思是,在你的模板中。 您选择了什么模板系统?

编辑:

至于您的迭代问题,forEach方法不会对您的对象进行任何更改。您最好使用map并返回修改后的对象。

  if (trips) {

     trips = trips.map(function(item){
       item.dateTime = moment(item.dateTime).format("YYYY-MM-DD")
       return item;
     });

  }

  res.json(trips);

答案 1 :(得分:0)

问题已经解决。

 data.map(function(item){
              item.Date = moment(item.Date).format("YYYY-MM-DD");
              return date;

              });

这是正确的方法,如上所述。我遇到了问题,因为我引用了其他内容。

答案 2 :(得分:0)

当您解析JSON时(您没有在应用中显示该代码),您可以使用reviver参数将字符串转换为日期。