2016-05-01 8 views
0

Am eine Anwendung in jQuery Mobile zu schaffen, die die endgültige Ausgabe in etwa so sein sollte:
enter image description hereFormatierung json Inhalt in jquery mobiler Listenansicht

Der rohe HTML-Code, der das Bild erzeugt ist

 <ul data-role="listview" data-inset="true"> 
    <li data-role="list-divider">Today, May 1, 2016 <span class="ui-li-count">2</span></li> 
     <li><a href="#"> 
     <h3>Reply</h3> 
     <p>20,00 we do have discounts for earlier payers </p> 


     <p class="ui-li-aside">10 mins ago</p> 
     </a></li> 
     <li><a href="#"> 
     <h4>Me</h4> 
     <p>How much is the current fee per semester? Do you accet credit cards</p> 
     <p class="ui-li-aside">25 mins ago</p> 
     </a></li> 
     <li data-role="list-divider">Yesterday, April 30, 2016 <span class="ui-li-count">1</span></li> 
     <li><a href="#"> 
     <h3>Reply</h3> 
     <p>Hello, How can i help you?</p> 
     <p class="ui-li-aside">10:15 pm</p> 
     </a></li> 
     <li data-role="list-divider">Friday, April 29, 2016 <span class="ui-li-count">1</span></li> 
     <li><a href="#"> 
     <h3>Me</h3> 
     <p>Hello</p> 
     <p class="ui-li-aside">10:15 pm</p> 
     </a></li> 
    </ul> 


In meinem Projekt bin ich mit JSON, um Daten aus der Datenbank zu holen und es dem Benutzer in einer ListView wie oben zu zeigen.

-Code Daten aus der Datenbank zu holen:

var id_from = localStorage.loggedin_id; 
    var id_to_send = localStorage.user_schoolls_head; 
$.getJSON("http://127.0.0.1/tum_old/custom/php/message.php", 
{id_from:id_from,id_to_send:id_to_send}, 
function(response){ 
console.log(response); 
}); 

Nach der console.log (Antwort) i das Javascript-Objekt erhält, wie:

enter image description here

A aus dem Bild mit der Liste Eine Situation für mich ist wie die für from_id und dann to_id (Beispiel 1: 4), während eine Antwort umgekehrt ist. Wie kann ich die Zeit Format anzuzeigen:

Today, yeasterday...from hence(on) it will display the dats on the list dividers 
Time to show 10mins ago, 20mins ago, but beyond 1 hour it shows the actual time (eg: 10:15pm) 
How to also sort these messages according to dates so that 
the earliest is seen first in the today area.. 

heißt: Es sollte wie das erste Bild APPEAR

MY DATABASE RECORD: enter image description here

+1

Schau dir diese Geige an: https://jsfiddle.net/ta793zx2/47/ Ist das (fast) das, was du suchst? – DerpyNerd

+0

Es fast da, aber wie füge ich die Listenteiler basierend auf dem Datum –

+0

Sie könnten das Datum für ein Array überprüfen. Wenn es nicht dort ist, erzeuge Teiler-HTML-Code und schiebe das Datum auf das Array. –

Antwort

1

erreicht werden. Überprüfen Sie this fiddle.

Es wäre sehr unklug, Ihre Objekte mit Javascript zu sortieren. Wie Zoran sagte, sollten Sie das in Ihrer Abfrage mit ORDER BY time_sent DESC tun.

aktualisiert nicht sicher, was Sie durch Teiler bedeuten basierend auf Datum aber ich habe die jsfiddle zur Ausgabe genau aktualisiert, wie das Datum in Ihrem Beispiel formatiert ist. Hoffe es hilft.

+0

Was ist mit den Listenteilern basierend auf dem Datum –

+0

@GEOFFREYMWANGI Ich habe meine Frage und Link aktualisiert – DerpyNerd

1

um Datum- Sie momentjs verwenden können (http://momentjs.com) . Die Sortierung kann einfach durch Hinzufügen von ORDER BY time_sent DESC in Ihrer SQL-Abfrage