2017-01-10 11 views
0

Я пытаюсь сравнить две даты в различных форматах, чтобы выделить новые элементы, добавленные с вашего последнего посещения, но есть одна проблема с первой датой:Сравнение двух дат в различных форматах в JavaScript/JQuery

jQuery("td.details > span:last-child").each(function() { 
    var a = jQuery(this).text(); 
    var b = a.split('/'); 
    var c = b[1]+'/'+e[0]+'/'+e[2]; //dd.mm.yyyy=>mm.dd.yyyy 
    var d = new Date(c); 
    var date = d.getTime(); 

    jQuery('<span/>', { 
    'class':'date', 
    'text': date, 
    }) .appendTo("td.details > p"); 
}); 

HTML:

<td class="details"><p>new item1</p><span>10/1/2017 17:06</span></td> 
    <td class="details"><p>new item2</p><span>09/1/2017 22:26</span></td> 
    <td class="details"><p>new item3</p><span>09/1/2017 11:18</span></td> 
    <td class="details"><p>new item4</p><span>08/1/2017 14:32</span></td> 

каждого td имеет другую дату, ожидание в каждом td будет создан span с соответствующим d.getTime() значения (только тестированием), но вновь созданный span содержит все d.getTime() values (с каждого td) не только это один. Что я делаю не так?

Вторая дата будет таким же (lastvisit) для каждого td поэтому никаких проблем

+0

'.appendTo (" td.details> p ");' говорит, "присоединяется ко всем p во всех td.details". Вам нужно развернуть это до текущего. Возможно, это может сработать (отсюда комментарий не отвечает): .appendTo ($ (this) .closest ("td"). Find (". Details> p")); '. –

+0

не работал, но '.appendTo (это)' отлично работает – Nidecker

ответ

0

Будет ли это работать лучше?

jQuery('<span/>', { 
    'class':'date', 
    'text': date, 
}).after(this); 

В своем коде вы добавления date к каждому td.details > p не только текущий. .after() добавит после вашего последнего пролета внутри td

+0

ой, "это" маленькая вещь. Спасибо! ** Редактирование: ** .После не работает, .appendTo отлично работает – Nidecker