1. ホーム
  2. javascript

[解決済み] Javascriptのdate.getYear()は2011年の111を返す?重複

2022-05-02 15:30:59

質問

日付フィルタを前月の初日と最終日に自動的に設定するためのjavascriptです。

$(document).ready(function () {
    $("#DateFrom").datepicker({ dateFormat: 'dd/mm/yy' });
    $("#DateTo").datepicker({ dateFormat: 'dd/mm/yy' });

    var now = new Date();
    var firstDayPrevMonth = new Date(now.getYear(), now.getMonth() - 1, 1);
    var firstDayThisMonth = new Date(now.getYear(), now.getMonth(), 1);
    var lastDayPrevMonth = new Date(firstDayThisMonth - 1);

    $("#DateFrom").datepicker("setDate", firstDayPrevMonth);
    $("#DateTo").datepicker("setDate", lastDayPrevMonth);
}); 

BUT now.getYear() は期待された2011ではなく、111を返します。 何か明らかな見落としがあるのでしょうか?

解決方法は?

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getYear

getYear は使用されなくなり、代わりに getFullYear メソッドを使用します。

は、その getYear メソッドは、西暦から1900年を引いた値を返します。

  • 2000年以上の年については getYear は100以上となります。例えば、年が2026年の場合。 getYear は 126 を返す。
  • 1900年から1999年までの間、およびそれを含む年については getYear は 0 から 99 の間である。例えば、年が1976年の場合。 getYear は 76 を返します。
  • 1900年未満の年については getYear は 0 よりも小さい。例えば、年が 1800 年の場合。 getYear は-100を返します。
  • 2000年以前と以後を考慮する場合は getFullYear の代わりに getYear で、年が完全に指定されます。