ow To Sort Date and Time in JavaScript utilizing Moment.Js

ow To Sort Date and Time in JavaScript utilizing Moment.Js

by Gabriel Correa

HTML

<script src="https://rawgithub.com/timrwood/moment/2.1.0/min/moment.min.js"></script>
<h2>How To Sort Date and Time in JavaScript utilizing Moment.Js</h2>

<div id="unsortedDates">
     <h3>Unsorted Test Dates</h3>

</div>
<div id="sortedDateAsc">
     <h3>Sorted Date Asc</h3>

</div>
<div id="sortedDateDesc">
     <h3>Sorted Date Desc</h3>

</div>
<div id="sortedTime">
     <h3>Sorted Time Asc</h3>

</div>
<div id="sortedTimeDesc">
     <h3>Sorted Time Desc</h3>

</div>
<div id="sortedDateDescTimeAsc">
     <h3>Sorted Date Desc Time Asc</h3>

</div>
<div id="sortedDateDescTimeAscRandom">
     <h3>Sorted Randomly Generated Dates Desc Time Asc</h3>

</div>
<div id="sortedDateDescTimeAscDate">
     <h3>Sorted Date Desc Time Asc Date Object</h3>

</div>

JavaScript

(function (moment) {
     var
     randomDate = function (start, end) {
         return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
     },
     sortByDateAsc = function (lhs, rhs) {
         return lhs > rhs ? 1 : lhs < rhs ? -1 : 0;
     },
     sortByDateDesc = function (lhs, rhs) {
         return lhs < rhs ? 1 : lhs > rhs ? -1 : 0;
     },
     sortByTimeAsc = function (lhs, rhs) {
         var results;

         results = lhs.hours() > rhs.hours() ? 1 : lhs.hours() < rhs.hours() ? -1 : 0;

         if (results === 0) results = lhs.minutes() > rhs.minutes() ? 1 : lhs.minutes() < rhs.minutes() ? -1 : 0;

         if (results === 0) results = lhs.seconds() > rhs.seconds() ? 1 : lhs.seconds() < rhs.seconds() ? -1 : 0;

         return results;
     },
     sortByTimeDesc = function (lhs, rhs) {
         var results;
         
         results = lhs.hours() < rhs.hours() ? 1 : lhs.hours() > rhs.hours() ? -1 : 0;

         if (results === 0) results = lhs.minutes() < rhs.minutes() ? 1 : lhs.minutes() > rhs.minutes() ? -1 : 0;

         if (results === 0) results = lhs.seconds() < rhs.seconds() ? 1 : lhs.seconds() > rhs.seconds() ? -1 : 0;

         return results;
     },
     sortByDateDescAndTimeAsc = function (lhs, rhs) {
         var results;

         results = lhs.years() < rhs.years() ? 1 : lhs.years() > rhs.years() ? -1 : 0;

         if (results === 0) results = lhs.months() < rhs.months() ? 1 : lhs.months() > rhs.months() ? -1 : 0;

         if (results === 0) results = lhs.date() < rhs.date() ? 1 : lhs.date() > rhs.date() ? -1 : 0;

         if (results === 0) results = lhs.hours() > rhs.hours() ? 1 : lhs.hours() < rhs.hours() ? -1 : 0;

         if (results === 0) results = lhs.minutes() > rhs.minutes() ? 1 : lhs.minutes() < rhs.minutes() ? -1 : 0;

         if (results === 0) results = lhs.seconds() > rhs.seconds() ? 1 : lhs.seconds() < rhs.seconds() ? -1 : 0;

         return results;
     },
    ...