Moment: рд╕реЙрд░реНрдЯ рддреБрд▓рдирд╛ рдлрд╝рдВрдХреНрд╢рди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 25 рдлрд╝рд░ре░ 2014  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: moment/moment

рдкрд▓ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдЫрд╛рдВрдЯрддреЗ рд╕рдордп (рдпрд╛ рдРрд╕реА рд╡рд╕реНрддреБрдПрдВ рдЬрд┐рдирдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдПрдХ рдХреНрд╖рдг рд╣реЛрддреА рд╣реИ, рдФрд░ рд╕реЙрд░реНрдЯ рдХреБрдВрдЬреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП), рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рддреБрд▓рдирд╛ рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реЛред рддрд╛рдХрд┐ рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рдо рдХрд░ рд╕рдХреЗрдВ:

array.sort(m.compare)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

moment#valueOf рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХрд╛рд░рдг, рддреБрд▓рдирд╛ рдлрд╝рдВрдХреНрд╢рди рддреБрдЪреНрдЫ рд╣реИред

var array = [
    moment(),
    moment().add(1, 'd'),
    moment().subtract(1, 'd')
];

console.log(array.map(function (m) {
    return m.format('YYYY-MM-DD')
}));
// ["2014-02-24", "2014-02-25", "2014-02-23"] 

array.sort(function (a, b) {
    return a - b;
});

console.log(array.map(function (m) {
    return m.format('YYYY-MM-DD')
}));
// ["2014-02-23", "2014-02-24", "2014-02-25"]

рд╕рднреА 6 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

moment#valueOf рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХрд╛рд░рдг, рддреБрд▓рдирд╛ рдлрд╝рдВрдХреНрд╢рди рддреБрдЪреНрдЫ рд╣реИред

var array = [
    moment(),
    moment().add(1, 'd'),
    moment().subtract(1, 'd')
];

console.log(array.map(function (m) {
    return m.format('YYYY-MM-DD')
}));
// ["2014-02-24", "2014-02-25", "2014-02-23"] 

array.sort(function (a, b) {
    return a - b;
});

console.log(array.map(function (m) {
    return m.format('YYYY-MM-DD')
}));
// ["2014-02-23", "2014-02-24", "2014-02-25"]

рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ moment#valueOf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде, рдпрд╣ рдЙрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЖрдкрдХреЛ a - b рдХрд╣рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИред

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рдмрд╕ рдХреБрдЫ рдРрд╕рд╛ рдХрд╣рддрд╛ рд╣реВрдВ:

a.isBefore(b) ? -1 : 1

рдпрдХреАрди рдирд╣реАрдВ рд╣реЛрддрд╛ рдХрд┐ рдореБрдЭреЗ рд╡рд╣ 1 рдФрд░ -1 рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдорд┐рд▓рд╛ рд╣реИред

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде, рдпрд╣ рдЙрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЖрдкрдХреЛ a - b рдХрд╣рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИред

рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреНрд╖рдг#valueOf рдХреЛ a.valueOf() - b.valueOf() рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдВрд╢рд┐рдХ рд╣реВрдВ:

momentsArray.sort((a, b) => a.diff(b));

рдЦреБрджред

@robertmassaioli рдЕрдкрдиреЗ рдХреЛрдб рд╕реЗ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ,

a.isBefore(b) ? -1 : 1

рдпрджрд┐ a рд╕рдорд╛рди рд╣реИ, рддреЛ рд╡рд╣ рдЙрдиреНрд╣реЗрдВ рдпрдерд╛рд╡рдд рд░рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрдирдХреА рдЕрджрд▓рд╛-рдмрджрд▓реА рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

danieljsinclair picture danieljsinclair  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

slavafomin picture slavafomin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

vbullinger picture vbullinger  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

paulyoung picture paulyoung  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ