web-dev-qa-db-ja.com

moment.jsで年を取得

これら2つの違いは何ですか?

var year = moment().format('YYYY');
var year = moment().year();

それはtype ofまたは他の何かですか?ただ興味があるだけ。

40
Marek

year()関数は、基になるDateオブジェクトの年コンポーネントを取得するだけなので、数値を返します。

format('YYYY')を呼び出すと、与えられたフォーマット文字列を解析し、適切なデータを含む新しい文字列を構築する、瞬間の文字列フォーマット関数を呼び出します。 YYYYのみを渡すため、結果は年を含む文字列になります。

必要なのが年だけの場合は、year()関数を使用します。実行する作業が少ないため、高速になります。

この点で年は同じですが、月は同じではないことに注意してください! format('M')を呼び出すと、1〜12の範囲の月が返されます。 month()を呼び出すと、0〜11の範囲の月が返されます。これは、基になるDateオブジェクトの同じ動作によるものです。

73
var year1 = moment().format('YYYY');
var year2 = moment().year();

console.log('using format("YYYY") : ',year1);
console.log('using year(): ',year2);

// using javascript 

var year3 = new Date().getFullYear();
console.log('using javascript :',year3);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
4
Saurabh Mistry