Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Преобразование времени из json (https://javascript.ru/forum/dom-window/64578-preobrazovanie-vremeni-iz-json.html)

AlexDomson 22.08.2016 20:06

Преобразование времени из 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
мне нужно подсчитать с нее возраст и вывести в формате гггг.мм.дд

рони 22.08.2016 22:50

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

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


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

рони 22.08.2016 23:00

AlexDomson,
http://javascript.ru/forum/misc/1242...tml#post314073

возраст, количество полных лет на текущее время
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'));

AlexDomson 23.08.2016 00:06

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 файла нужную инфу и считает

warren buffet 23.08.2016 07:18

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


Часовой пояс GMT +3, время: 21:19.