Dapatkan tahun ini dalam JavaScript


975

Bagaimana cara mendapatkan tahun ini dalam JavaScript?


10
Mengherankan jika benar-benar tidak ada duplikat untuk ini. Yang ini dekat, tapi tidak tepat.
TJ Crowder

5
Dapatkan diri Anda referensi, ini adalah sederhana mencari Obyek Date
epascarello

2
Perhatikan bahwa tahun "saat ini" tidak harus sama untuk semua orang di planet ini secara bersamaan. Kita harus mempertimbangkan zona waktu. Sebagian besar jawaban di sini memberikan tahun saat ini di zona waktu lokal pengguna (dengan asumsi kode tersebut berjalan di browser web).
Matt Johnson-Pint

Jawaban:


1762

Buat new Date()objek dan panggil getFullYear():

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

Membajak jawaban yang diterima untuk memberikan beberapa contoh konteks dasar seperti catatan kaki yang selalu menunjukkan tahun berjalan:

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

Di tempat lain dieksekusi setelah HTML di atas telah dimuat:

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


26
Untuk fungsi lain dalam keluarga yang sama, lihat: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
user456584

Untuk mendapatkan tahun sesuai dengan waktu universal gunakan getUTCFullYear ()
Courtney Pattison

2
Contoh footer di atas akan lebih jelas jika itu hanya: <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
Gunakan getFullYear () alih-alih getYear (). Lihat stackoverflow.com/questions/16296897/…
roland

95

Berikut adalah metode lain untuk mendapatkan tanggal

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

Begitulah cara saya membuatnya tertanam dan dikeluarkan ke halaman web HTML saya:

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

Output ke halaman HTML adalah sebagai berikut:

Hak Cipta © 2018


4
Saya tidak setuju. Ini jelas merupakan pertanyaan pemula dan kita seharusnya tidak mengajarkan praktik buruk kepada siapa pun, terutama mereka yang mulai mempelajari dasar-dasarnya. Selain itu jawaban Anda tidak memberikan informasi baru seperti new Date().getFullYear()yang sudah ditampilkan dalam jawaban yang diterima.
leonheess

2
1.) Praktek buruk mengatakan Anda, tetapi yang lain tidak setuju karena ini adalah Javascript vanilla yang valid; 2.) Jawaban saya memberikan informasi baru tentang bagaimana menerapkan ini dalam halaman HTML, dan bukan hanya console.log ().
Programmer Yerusalem

2
"Bagus" itu subyektif. Ada lebih dari satu cara untuk menguliti kucing, dan lebih dari satu cara untuk memecahkan masalah pengkodean. Jika solusinya sederhana dan berhasil, mengapa ini tidak "baik" menurut Anda?
Programmer Yerusalem

1
Nah, pak, jelas bahwa ini bukan standar objektif yang jelas (dan memang merupakan debat terbuka), karena ada banyak yang tidak setuju dengan Anda: stackoverflow.com/questions/802854/… ... dan juga di sini : stackoverflow.com/questions/18789190/why-not-document-write Oleh karena itu, menandai reputasi saya ke bawah untuk pendapat subjektif Anda tidak terlalu baik karena ada orang lain yang tidak setuju dengan Anda. Ingat poin utama di sini, dan saya baru saja menyediakan cara sederhana untuk mencetak ini ke file HTML alih-alih console.log ().
Programmer Yerusalem

1
Silakan lihat dua tautan sebelumnya di mana Anda dapat melihat ratusan orang yang tidak setuju dengan Anda. Ada juga ratusan orang yang setuju dengan Anda, jadi itu bukan masalah yang jelas. Anda bersikeras pada jalan Anda atau jalan tinggi cukup tertutup karena Anda tidak dapat memastikan apakah seseorang dapat memutuskan dokumen itu. Menulis () adalah solusi terbaik untuk kebutuhannya.
Programmer Yerusalem

4

untuk tahun ini kita dapat menggunakan getFullYear () dari kelas Date namun ada banyak fungsi yang dapat Anda gunakan sesuai persyaratan, beberapa fungsi seperti,

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

Ambil contoh ini, Anda dapat menempatkannya di mana pun Anda ingin menunjukkannya tanpa merujuk ke skrip di footer atau di tempat lain seperti jawaban lain

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

Catatan hak cipta di catatan kaki sebagai contoh

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

Ini adalah jawaban yang tidak perlu.
Crocsx

@crocsx Anda dapat menambahkan kode ini dalam HTML di tempat yang ingin Anda perlihatkan tanpa merujuk ke skrip di footer atau di tempat lain seperti semua jawaban lainnya
Majali

sama dengan jawaban Programmer Yerusalem yang sedikit berbeda
Crocsx

@Crocsx jawaban ini lebih bersih tidak termasuk elemen HTML dan kelas CSS yang menganggap Anda menggunakan bootstrap, itu hanya satu baris, kan?
Majali

pertanyaannya adalah hanya mendapatkan tahun di JS, tidak mendapatkan tahun dan letakkan di footer. Dan dalam hal ini, Anda bisa mengedit jawaban yang lain. Pokoknya ...
Crocsx

1

Anda cukup menggunakan javascript seperti ini. Kalau tidak, Anda dapat menggunakan Plugin momentJs yang membantu dalam aplikasi besar.

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

Sebagian besar jawaban yang ditemukan di sini benar hanya jika Anda memerlukan tahun berjalan berdasarkan zona waktu dan offset mesin lokal Anda (sisi klien) - sumber yang, dalam sebagian besar skenario, tidak dapat dianggap andal (karena dapat berbeda dari mesin ke mesin) .

Sumber yang dapat dipercaya adalah:

  • Jam server web (tapi pastikan itu diperbarui)
  • API Waktu & CDN

Detail

Metode yang dipanggil pada Dateinstance akan mengembalikan nilai berdasarkan waktu lokal mesin Anda.

Rincian lebih lanjut dapat ditemukan di "dokumen web MDN": objek Tanggal JavaScript .

Demi kenyamanan Anda, saya telah menambahkan catatan yang relevan dari dokumen mereka:

(...) metode dasar untuk mengambil tanggal dan waktu atau komponen-komponennya semuanya bekerja di zona waktu lokal (yaitu sistem host) dan offset.

Sumber lain yang menyebutkan ini adalah: objek tanggal dan waktu JavaScript

Penting untuk dicatat bahwa jika jam seseorang mati beberapa jam atau mereka berada di zona waktu yang berbeda, maka objek Date akan membuat waktu yang berbeda dari yang dibuat di komputer Anda sendiri.

Beberapa sumber tepercaya yang dapat Anda gunakan adalah:

Tetapi jika Anda tidak peduli dengan ketepatan waktu atau jika use case Anda membutuhkan nilai waktu relatif terhadap waktu mesin lokal maka Anda dapat menggunakan Datemetode dasar Javascript seperti Date.now(), atau new Date().getFullYear()(untuk tahun berjalan) dengan aman.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.