2014-01-29 94 views
-2

我JSON对象如下:如何格式化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年1月29日的日期。我该怎么做 ?

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

      }); 

我用快递的node.js

+1

如果日期是字符串,你可以简单地通过阵列中的所有对象进行迭代,并通过空间分割来获得第一部分(日期)。这非常简单。在尝试从这里获得解决方案之前先试试。 – Munim

+0

试过了,但没有工作,所以我张贴在这里。 (item){ item.dateTime = format(item.dateTime); }); – jyoti

+0

描述“没有工作”。 – Deestan

回答

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); 
+0

我正在使用玉器。 抱歉,家伙,它不工作。它似乎停在那里。 – jyoti

+0

我加入Deestan这个,你叫什么“不工作”?我们能帮你。 –

+0

我编辑了这个问题,json没有迭代。 – jyoti

0

问题已解决。

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

       }); 

这是上面已经提到的正确方法。我有问题,因为我引用了其他的东西。

0

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