A JavaScript function to provide more flexible sorting for Array.prototype.sort()
Sample Data
var data = [
{
id: 3,
name: {
first: "Bul",
last: "Basaur"
},
gender: "M"
},
{
id: 2,
name: {
first: "Char",
last: "Mander"
},
gender: "F"
},
{
id: 1,
name: {
first: "Squir",
last: "Tle"
},
gender: "M"
}
];
Example 1: Sort by single field
data.sort(sort_by("id"));
Example 2: Sort by multiple field and nested json
data.sort(sort_by("name.first", "name.last"));
Example 3: Sort by reverse order
data.sort(sort_by({ name: "id", reverse: true }));
Example 4: Sort by last name ignore case (custom primer)
data.sort(sort_by({ name: "name.last", primer: function(a) { return a.toUpperCase() } }));
A JavaScript class to format Date object
Custom Date Time format string
// Will return something like this 8-Sep-2016 10:1:49 767 AM +8
// Results might be differ based on your timezone and localization
console.log(DateTime.formatDate(new Date(), "dd-MMM-yyyy hh:mm:ss fff tt z"));
Get time elapsed
// This example will return you 12 months
console.log(DateTime.timeSince(new Date("9/8/2015")));