Pergunta

Pergunta:Como faço para converter cada título individualmente em ISO8601

Estou tentando utilizar a biblioteca Timeago JQuery.Eu preencho o título com a string UTC, então tenho que converter o título do attr UTC para ISO8601 antes de executar a biblioteca Timeago, caso contrário, o Safari/FF/IE não mostra nada.

JQuery

var dateString = $('.timeago').attr('title');
var dateConvert = new Date(dateString);
 $('.timeago').attr('title', dateConvert.toISOString());

HTML

<abbr class="timeago" title="Sun, 30 Jul 2014 15:06:00 -0500"></abbr>
<abbr class="timeago" title="Sun, 30 Jul 2014 14:45:00 -0500"></abbr>

Resultados

<abbr class="timeago" title="2014-07-30T20:06:00.000Z">3 minutes ago</abbr>
<abbr class="timeago" title="2014-07-30T20:06:00.000Z">3 minutes ago</abbr>

resultados esperados

<abbr class="timeago" title="2014-07-30T20:06:00.000Z">3 minutes ago</abbr>
<abbr class="timeago" title="2014-07-30T19:45:00.000Z">24 minutes ago</abbr>
Foi útil?

Solução

Seu código está apenas pegando o title atributo do primeiro .timeago elemento.

[jQuery's attr()][1] método "[obtém] o valor de um atributo para o primeiro elemento no conjunto de elementos correspondentes ou [define] um ou mais atributos para cada elemento correspondente" (documentos).

Usar jQuery .each método se você quiser realizar uma ação em cada elemento selecionado em um conjunto:

$(".timeago").each(function() {
    var dateString = $(this).attr('title');
    var dateConvert = new Date(dateString);
    $(this).attr('title', dateConvert.toISOString());
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top