2014-01-29 3 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-01-29. Как мне это сделать ?

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

      }); 

Я использую экспресс node.js

+1

Если дата является строкой, вы можете просто перебрать все объекты в массиве и разделить по пробелу, чтобы получить первую часть (дату). Это действительно просто. Сделайте снимок, прежде чем просто попытаться получить решение отсюда. – Munim

+0

попробовал, но не работал, поэтому я разместил здесь. данные.forEach (функция (item) { item.dateTime = format (item.dateTime); }); – jyoti

+0

Опишите "didnt work". – Deestan

ответ

0

Вы можете использовать Moment.js для этого: http://momentjs.com/ (Это может, кажется, слишком много на первый, но эта библиотека может помочь вам во многих случаях)

В ваш пример, чтобы отформатировать дату в нужном формате, вы можете использовать:

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

И установить Moment.js просто использовать: npm install --save moment

Однако, я думаю, что может быть хорошей практикой адаптировать вашу дату к формату отображения в последний момент (Ohohoh). Я имею в виду, в вашем шаблоне. Какая система шаблонов вы выбрали?

Edit:

Что касается вашей проблемы итерации, метод 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 для преобразования строк в даты.

Смежные вопросы