Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.08.2016, 20:06
Новичок на форуме
Отправить личное сообщение для AlexDomson Посмотреть профиль Найти все сообщения от AlexDomson
 
Регистрация: 18.08.2016
Сообщений: 2

Преобразование времени из json
День добрый. нужна помощь.
Есть файл json
из него я получаю таблицу с 5ю колонками. я ее вывожу на экран вот таким образом

$(function(){
    $.getJSON('echo.json', function(data) {
        for(var i=0;i<data.values.length;i++){
            $('#users').append('<tr><td>' + data.values[i].name.v + '</td>' +
                '<td>' + data.values[i].firstName.v + '</td>' +
                '<td>' + data.values[i].birthDate.v + '</td>' +
                '<td><a href="tel:'+ data.values[i].tel.v + '" class="ng-binding">' + data.values[i].tel.v + '</a></td>' +
                '<td><a target="_blank"  href="http://maps.google.com/?q=' + data.values[i].address.v + '">'  + data.values[i].address.v + '</a></td></tr>');

        }
        $('.spc').append('<caption>' + data.values.length + '</caption>')
    });
});



ну и в html (если это нужно )
<table id="users" class="table spc" >
            <tr>

                <td class="thd" onclick="sort(this)" title="Нажмите на заголовок, чтобы отсортировать колонку">Имя</td>

                <td class="thd" onclick="sort(this)" title="Нажмите на заголовок, чтобы отсортировать колонку">Фамилия</td>

                <td class="thd" onclick="sort(this)" title="Нажмите на заголовок, чтобы отсортировать колонку">Дата рождения</td>

                <td class="thd" onclick="sort(this)" title="Нажмите на заголовок, чтобы отсортировать колонку">Телефон</td>

                <td class="thd" onclick="sort(this)" title="Нажмите на заголовок, чтобы отсортировать колонку">Адрес</td>

            </tr>
        </table>



Проблема в том. что в файле json дата сохранена в таком вот формате 1955-04-24T05:00:00.000Z
мне нужно подсчитать с нее возраст и вывести в формате гггг.мм.дд

Последний раз редактировалось AlexDomson, 22.08.2016 в 23:09.
Ответить с цитированием
  #2 (permalink)  
Старый 22.08.2016, 22:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

AlexDomson,
https://learn.javascript.ru/datetime
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 22.08.2016, 23:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

AlexDomson,
расчет возраста

возраст, количество полных лет на текущее время
function yearsOld(c, b) {
    var a = new Date;
    a.setTime(Date.parse(c));
    var d = a.getFullYear(),
        e = a.getMonth(),
        f = a.getDate();
    b ? a.setTime(Date.parse(b)) : a = new Date;
    return a.getFullYear() - d - (0 > (a.getMonth() - e || a.getDate() - f))
};

alert(yearsOld('1955-04-24T05:00:00.000Z'));
Ответить с цитированием
  #4 (permalink)  
Старый 23.08.2016, 00:06
Новичок на форуме
Отправить личное сообщение для AlexDomson Посмотреть профиль Найти все сообщения от AlexDomson
 
Регистрация: 18.08.2016
Сообщений: 2

function getAge(birthStr) {
    var year=parseInt(birthStr.substr(0, 4));
    var month=parseInt(birthStr.substr(5, 2))-1;
    var day=parseInt(birthStr.substr(8, 2));
    var today=new Date();
    var age=today.getFullYear()-year;
    if(today.getMonth()<month || (today.getMonth()==month && today.getDate()<day)){age--;}
    return age;
}

$(function(){
    $.getJSON('echo.json', function(data) {
        for( var  i=0;i<data.values.length;i++){
            var age = getAge(data.values[i].birthDate.v);
            var year = data.values[i].birthDate.v.substr(0, 4);
            var month = data.values[i].birthDate.v.substr(5, 2);
            var day = data.values[i].birthDate.v.substr(8, 2);
            $('#users').append('<tr><td>' + data.values[i].name.v + '</td>' +
                '<td>' + data.values[i].firstName.v + '</td>' +
                '<td>' +  age + '(' + year + '-' + month + '-' + day + ')' + '</td>' +
                '<td><a href="tel:'+ data.values[i].tel.v + '" class="ng-binding">' + data.values[i].tel.v + '</a></td>' +
                '<td><a target="_blank"  href="http://maps.google.com/?q=' + data.values[i].address.v + '">'  + data.values[i].address.v + '</a></td></tr>');


        }
        $('.spc').append('<caption>' + data.values.length + '</caption>')

    });
});


сам уже сделал, вот таким образом достает из json файла нужную инфу и считает
Ответить с цитированием
  #5 (permalink)  
Старый 23.08.2016, 07:18
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

AlexDomson, зачем писать свой деревенский парсер, если рони тебе показал индустриальный метод.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование ТАБЛИЦЫ с родителями в json объекты Patr56 Общие вопросы Javascript 5 28.07.2014 12:30
Преобразование русских символов в JSON maternik Серверные языки и технологии 1 04.04.2014 07:20
Преобразование URL в JSON mikeles Events/DOM/Window 1 06.03.2011 12:38
Преобразование данных json в массив LA_ Общие вопросы Javascript 4 28.10.2010 23:54
Преобразование данных с сервера в JSON frolvict Общие вопросы Javascript 1 04.04.2010 12:26