Trier le tableau par date donne des résultats inattendus

Cela va sembler comme un problème facile, mais j'ai passé mon dimanche à essayer de comprendre quel est le problème avec mon application décrite ci-dessous donc je suis annonce qu'il SORTE comme un dernier recours.

J'ai un javascript de l'application qui reçoit les structures de données à partir d'un serveur. Le serveur envoie les données non triées pour des raisons de performances.

Voici un extrait de la le code javascript de la réception de données:

    var seriesRawDataArray = ko.observableArray();
    ...
    analyticscontext.series(seriesRawDataArray).done(function () {
        renderSeries();
    });

La analyticscontext module de requêtes de données à l'aide d'ajax:

function series(seriesData) {
    return $.ajax({
        url: "/api/analytics/series",
        type: "GET",
        success: function (data) {
            return seriesData(data);
        }
    });
}

La renderSeries effectue un tri sur les données avant de le rendre:

    //Sort the data by date using moment.js
    seriesRawDataArray.sort(function (left, right) {
        var leftDate = moment.utc(left.timeStamp);
        var rightDate = moment.utc(right.timeStamp);
        var diff = leftDate.diff(rightDate);
        return diff > 0;
    });

PROBLÈME

Voici un échantillon de données que je reçois de mon serveur:
Trier le tableau par date donne des résultats inattendus

Avis les éléments non triés à la fin.
le seriesRawDataArray.sort semblent avoir aucun effet sur le tableau d'origine qui n'est pas triée peu importe ce que j'changement dans la méthode de tri. La sortie est toujours:

Trier le tableau par date donne des résultats inattendus

Avis le non triée des éléments ici.
Les bibliothèques que j'utilise et les données n'est certainement pas le problème que ce jsfiddle fonctionne très bien!
Est-il quelque chose de mal avec ce code?

source d'informationauteur GETah