JavaScriptで現在の年を取得する


975

JavaScriptで現在の年を取得するにはどうすればよいですか?


10
これが本当に重複していないのなら驚くべきことです。これは近いですが正確ではありません。
TJクラウダー

5
参照を取得してください。これは日付オブジェクトの
epascarello

2
「現在」の年は、地球上のすべての人にとって必ずしも同じ年になるとは限らないことに注意してください。タイムゾーンを考慮する必要があります。ここでの回答のほとんどは、ユーザーのローカルタイムゾーンでの現在の年を示しています(コードがWebブラウザーで実行されている場合)。
Matt Johnson-Pint 2017

回答:


1762

new Date()オブジェクトを作成して呼び出しますgetFullYear()

new Date().getFullYear()
// returns the current year

受け入れられた回答をハイジャックして、現在の年を常に表示するフッターのような基本的なコンテキスト例を提供します。

<footer>
    &copy; <span id="year"></span>
</footer>

上記のHTMLが読み込まれた後に実行される別の場所:

<script>
    document.getElementById("year").innerHTML = new Date().getFullYear();
</script>


26
同じ家族の中で他の機能については、以下を参照してくださいdeveloper.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
user456584

ユニバーサル時間の使用に応じて年を取得するために、getUTCFullYear()
コートニー・パティソン

2
上記のフッターの例は、<footer> <span id = "year"> </ span> </ footer>
Mike

227
// Return today's date and time
var currentTime = new Date()

// returns the month (from 0 to 11)
var month = currentTime.getMonth() + 1

// returns the day of the month (from 1 to 31)
var day = currentTime.getDate()

// returns the year (four digits)
var year = currentTime.getFullYear()

// write output MM/dd/yyyy
document.write(month + "/" + day + "/" + year)


3
getYear()の代わりにgetFullYear()を使用してください。stackoverflow.com/questions/16296897/…を
roland

95

これは日付を取得する別の方法です

new Date().getDate()          // Get the day as a number (1-31)
new Date().getDay()           // Get the weekday as a number (0-6)
new Date().getFullYear()      // Get the four digit year (yyyy)
new Date().getHours()         // Get the hour (0-23)
new Date().getMilliseconds()  // Get the milliseconds (0-999)
new Date().getMinutes()       // Get the minutes (0-59)
new Date().getMonth()         // Get the month (0-11)
new Date().getSeconds()       // Get the seconds (0-59)
new Date().getTime()          // Get the time (milliseconds since January 1, 1970)

5

これは、HTML Webページに埋め込み、出力する方法です。

<div class="container">
    <p class="text-center">Copyright &copy; 
        <script>
            var CurrentYear = new Date().getFullYear()
            document.write(CurrentYear)
        </script>
    </p>
</div>

HTMLページへの出力は次のとおりです。

Copyright©2018


4
同意しません。これは明らかに初心者向けの質問であり、特に基本を学び始めている人に悪い習慣を教えるべきではありません。さらにnew Date().getFullYear()、受け入れられた回答ですでに取り上げられているように、回答には新しい情報が含まれていません。
leonheess

2
1.)悪い習慣はあなたを言うが、これは有効なバニラJavascriptであるので他の人は同意しない。2.)私の答えは、console.log()だけでなく、HTMLページ内にこれを実装する方法の新しい情報を提供します。
エルサレムプログラマー

2
「良い」は主観的です。猫の皮をむく方法は複数あり、コーディングの問題を解決する方法は複数あります。ソリューションがシンプルで機能する場合、なぜこれがあなたの控えめな意見では「良くない」のですか?
エルサレムプログラマ

1
まあ、サー、これは明確な客観的標準ではないことは明らかです(そして実際にオープンな議論です)。あなたに反対する人がたくさんいます:stackoverflow.com/questions/802854/… ...そしてここでも:stackoverflow.com/questions/18789190/why-not-document-write したがって、あなたの主観的な意見に対する私の評判を落とすことは、あなたに反対する人がいるのであまり良くありません。ここでの要点を思い出してください。これは、console.log()の代わりにこれをHTMLファイルに出力する簡単な方法です。
エルサレムプログラマ

1
あなたに反対する何百人もの人々を見ることができる前の2つのリンクを見てください。あなたに同意する人も数百人いるので、明確な問題ではありません。誰かがdocument.write()が彼/彼女のニーズに最適なソリューションであると決定することができるかどうか確信できないので、あなたはあなたの方法に固執するか、またはハイウェイはかなり閉じた考えです。
エルサレムプログラマー

4

現在の年では、DateクラスのgetFullYear()を使用できますが、要件に従って使用できる多くの関数があり、一部の関数は次のとおりです。

var now = new Date()
console.log("Current Time is: " + now);

// getFullYear function will give current year 
var currentYear = now.getFullYear()
console.log("Current year is: " + currentYear);

// getYear will give you the years after 1990 i.e currentYear-1990
var year = now.getYear()
console.log("Current year is: " + year);

// getMonth gives the month value but months starts from 0
// add 1 to get actual month value 
var month = now.getMonth() + 1
console.log("Current month is: " + month);

// getDate gives the date value
var day = now.getDate()
console.log("Today's day is: " + day);


2

この例では、フッターのスクリプトや他の回答のような場所を参照せずに、表示したい場所に配置できます。

<script>new Date().getFullYear()>document.write(new Date().getFullYear());</script>

例としてフッターの著作権注記

Copyright 2010 - <script>new Date().getFullYear()>document.write(new Date().getFullYear());</script>

これは不必要な答えです。
Crocsx

@crocsxフッターや他のすべての回答と同様にスクリプトを参照せずに、表示したい場所にこのコードをHTMLに追加できます
Majali

エルサレムのプログラマの答えと同じですが、若干異なります
Crocsx

@Crocsxこの回答はよりクリーンで、ブートストラップを使用することを想定したHTML要素とCSSクラスは含まれていません。1行だけですよね?
マハリ

問題は単にJSで年を取得することであり、年を取得してフッターに配置することではありません。そしてその場合、あなたは他の答えを編集することができたでしょう。とにかく...
Crocsx

1

このように単純にJavaScriptを使用できます。それ以外の場合は、大きなアプリケーションで役立つmomentJsプラグインを使用できます。

new Date().getDate()          // Get the day as a number (1-31)
new Date().getDay()           // Get the weekday as a number (0-6)
new Date().getFullYear()      // Get the four digit year (yyyy)
new Date().getHours()         // Get the hour (0-23)
new Date().getMilliseconds()  // Get the milliseconds (0-999)
new Date().getMinutes()       // Get the minutes (0-59)
new Date().getMonth()         // Get the month (0-11)
new Date().getSeconds()       // Get the seconds (0-59)
new Date().getTime()          // Get the time (milliseconds since January 1, 1970)

function generate(type,element)
{
	var value = "";
	var date = new Date();
	switch (type) {
		case "Date":
			value = date.getDate();		// Get the day as a number (1-31)
			break;
		case "Day":
			value = date.getDay();		// Get the weekday as a number (0-6)
			break;
		case "FullYear":
			value = date.getFullYear();	// Get the four digit year (yyyy)
			break;
		case "Hours":
			value = date.getHours();	// Get the hour (0-23)
			break;
		case "Milliseconds":
			value = date.getMilliseconds();	// Get the milliseconds (0-999)
			break;
		case "Minutes":
			value = date.getMinutes();     // Get the minutes (0-59)
			break;
		case "Month":
			value = date.getMonth();	// Get the month (0-11)
			break;
		case "Seconds":
			value = date.getSeconds();	// Get the seconds (0-59)
			break;
		case "Time":
			value = date.getTime();		// Get the time (milliseconds since January 1, 1970)
			break;
	}

	$(element).siblings('span').text(value);
}
li{
  list-style-type: none;
  padding: 5px;
}

button{
  width: 150px;
}

span{
  margin-left: 100px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<ul>
	<li>
		<button type="button" onclick="generate('Date',this)">Get Date</button>
		<span></span>
	</li>
	<li>
		<button type="button" onclick="generate('Day',this)">Get Day</button>
		<span></span>
	</li>
	<li>
		<button type="button" onclick="generate('FullYear',this)">Get Full Year</button>
		<span></span>
	</li>
	<li>
		<button type="button" onclick="generate('Hours',this)">Get Hours</button>
		<span></span>
	</li>
	<li>
		<button type="button" onclick="generate('Milliseconds',this)">Get Milliseconds</button>
		<span></span>
	</li>

	<li>
		<button type="button" onclick="generate('Minutes',this)">Get Minutes</button>
		<span></span>
	</li>
	<li>
		<button type="button" onclick="generate('Month',this)">Get Month</button>
		<span></span>
	</li>
	<li>
		<button type="button" onclick="generate('Seconds',this)">Get Seconds</button>
		<span></span>
	</li>
	<li>
		<button type="button" onclick="generate('Time',this)">Get Time</button>
		<span></span>
	</li>
</ul>


0

TL; DR

ここにある答えのほとんどは、ローカルマシンのタイムゾーンとオフセット(クライアント側)に基づいて現在の年が必要な場合にのみ正解です-ほとんどのシナリオでは、信頼できると見なすことができないソース(マシンごとに異なる可能性があるため) 。

信頼できるソースは次のとおりです。

  • Webサーバーのクロック(ただし、更新されていることを確認してください)
  • 時間APIとCDN

詳細

Dateインスタンスで呼び出されたメソッドは、マシンのローカル時間に基づいて値を返します。

詳細については、「MDN web docs」:JavaScript Dateオブジェクトをご覧ください。

あなたの便宜のために、私は彼らのドキュメントから関連するメモを追加しました:

(...)日付と時刻またはそのコンポーネントをフェッチする基本的な方法はすべて、ローカル(ホストシステム)のタイムゾーンとオフセットで機能します。

これについて言及している別のソースは、JavaScriptの日付と時刻オブジェクトです。

誰かの時計が数時間ずれている場合、または別のタイムゾーンにいる場合、Dateオブジェクトは自分のコンピューターで作成されたものとは異なる時刻を作成することに注意することが重要です。

使用できる信頼できる情報源は次のとおりです。

しかし、時間の正確さを気にしない場合、またはユースケースでローカルマシンの時間に関連する時間の値が必要な場合は、または(現在の年)DateなどのJavascriptの基本的なメソッドを安全に使用できます。Date.now()new Date().getFullYear()

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.