2012-12-06 11 views
9

Mi piacerebbe convertire le seguenti date usando Javascripy/jQuery. La mia ricerca sembra indicare moment.js, che sembra fantastico ma non riesco a individuarlo. (JS semi-niubbo)Usa moment.js per convertire il formato data

<div class="date">01-06-2012</div> convert to display January 6 
<div class="date">05-14-2012</div> convert to display May 14 
<div class="date">06-16-2012</div> to display June 16 

Inoltre sarebbe fantastico se la stessa logica può applicare una classe aggiuntiva al div se la data è nelle ultime 24 ore, quindi posso lo stile quelli un po 'diverso. Forse le date nelle ultime 24 ore aggiungono una classe e invece una data mostrano "nuovo".

Grazie!

risposta

23
$(function() { 
    $('.date').each(function (index, dateElem) { 
    var $dateElem = $(dateElem); 
    var formatted = moment($dateElem.text(), 'MM-DD-YYYY').format('MMMM D'); 
    $dateElem.text(formatted); 
    }) 
});​ 

http://jsfiddle.net/x2fDP/

Da parte 2, provare a utilizzare new Date().getTime() - textMoment.valueOf() (dove textMoment è l'istanza momento analizzato creato dal testo del div) per ottenere il numero di millisecondi fa, che data è stato e se questo numero è sotto la vostra soglia, utilizzare $dateElem.addClass('new');

+0

Impressionante. C'è un modo per aggiungere la classe al div e il testo "nuovo" invece di visualizzare la data se la data è nelle ultime 24 ore? La riformattazione ha scosso. (È l'ultima parte della mia domanda sotto il codice sopra.) –

+0

Per aggiungere una classe prova '.addClass()'. Puoi trovarne l'uso qui: http://api.jquery.com/addclass/. Se questo ti ha aiutato a non dimenticare di upvote! ;) Buona fortuna amico! – SrAxi

+0

Buon lavoro! Voto positivo :) – Stu

Problemi correlati