Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
/* jshint esnext:true */
var ar = [
    '19.07.2015 6:00',
    '19.07.2015 7:00',
    '19.07.2015 8:00',
    '21.07.2015 14:00',
    '21.07.2015 15:00',
    '21.07.2015 16:00',
    '19.07.2015 20:00',
    '19.07.2015 21:00',
    '13.07.2015 6:00',
    '13.07.2015 7:00',
    '13.07.2015 9:00',
    '13.07.2015 10:00',
    '13.07.2015 11:00',
    '13.07.2015 16:00',
    '13.07.2015 17:00',
    '13.07.2015 8:00',
    '13.07.2015 15:00'
];
var res = ar.sort((a,b) => {
    var d1,m1,y1,h1,d2,m2,y2,h2;
    [d1,m1,y1,h1] = a.split(/[ .:]/);
    [d2,m2,y2,h2] = b.split(/[ .:]/);
    return (y1-y2)||(m1-m2)||(d1-d2)||(h1-h2);
    
}).reduce((s, e) => {
    var date, time, lastDate, timeStart, timeEnd;
    [date, time] = e.split(' ');
    [lastDate, timeStart, timeEnd] = (s[s.length - 1]||'').split(/[- ]+/);
    if (date == lastDate && parseInt(time) - parseInt(timeEnd) == 1) {
        s[s.length - 1] = `${date} ${timeStart} - ${time}`;
    } else s.push(`${date} ${time} - ${time}`);
    return s;
}, []);
console.log(res);
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x