配列内の日付のうち、最小の日付を取得

お世話になっております。

予定日の日付入力欄がいくつかあり、その中で最小の日付を「直近の予定日」として取得しようと思っています。

下記のようなコードを書きましたが、NaNとなって取得できませんでした。

一つ一つ大小を比較すればできることはできるのですが、日付入力欄の増減に耐えられなくなるので、できれば関数で取得したいと思います。

var DateArray = new Array();

DateArray.push(record[‘日付_1’][‘value’]);

DateArray.push(record[‘日付_2’][‘value’]);

var min = Math.min.apply(null, DateArray);

window.confirm(min);

よろしくお願いします。

 

Koichi Ito さん

Moment.js を使っては、いかがでしょうか?

var DateArray = new Array();
!record['日付_1']['value'] || DateArray.push(moment(record['日付_1']['value']));
!record['日付_2']['value'] || DateArray.push(moment(record['日付_2']['value']));
var min = DateArray.length === 0 ? '予定なし' : moment(Math.min.apply(null, DateArray)).format('YYYY-MM-DD');
window.confirm(min);

rex0200さん

回答ありがとうございます。

配列に入れるときにもmomentが必要だったのですね。

さらに、Math.min.applyの使い方も間違っていました。

また「日付が空欄だったらどうしよう。全部の日付で確認しないと...」と心配してしたのも解決しました。

ありがとうございました。