รับปีปัจจุบันใน JavaScript


975

ฉันจะรับปีปัจจุบันใน JavaScript ได้อย่างไร


10
พิศวงหากว่ามันไม่ซ้ำกันจริงๆสำหรับสิ่งนี้ อันนี้ใกล้ แต่ไม่แน่นอน
TJ Crowder

5
รับการอ้างอิงด้วยตัวคุณเองนี่คือการค้นหาวันที่
Epascarello

2
โปรดทราบว่าปี "ปัจจุบัน" ไม่จำเป็นต้องเหมือนกันสำหรับทุกคนในโลกในเวลาเดียวกัน หนึ่งมีการพิจารณาเขตเวลา คำตอบส่วนใหญ่ที่นี่ให้ปีปัจจุบันในเขตเวลาท้องถิ่นของผู้ใช้ (สมมติว่ารหัสทำงานในเว็บเบราว์เซอร์)
Matt Johnson-Pint

คำตอบ:


1760

สร้าง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/…
456584

เพื่อให้ได้ปีตามการใช้เวลาสากลgetUTCFullYear ()
Courtney Pattison

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
ใช้ getFullYear () แทน getYear () ดู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 ของฉัน:

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

หน้าผลลัพธ์ไปยัง HTML มีดังต่อไปนี้:

ลิขสิทธิ์© 2018


4
ฉันไม่เห็นด้วย. นี่เป็นคำถามเริ่มต้นอย่างชัดเจนและเราไม่ควรสอนการปฏิบัติที่ไม่ดีให้กับทุกคนโดยเฉพาะผู้ที่เริ่มเรียนรู้พื้นฐาน นอกจากนี้คำตอบของคุณไม่ได้ให้ข้อมูลใหม่ใด ๆ ที่new Date().getFullYear()มีอยู่แล้วในคำตอบที่ยอมรับแล้ว
ไร้สาระ

2
1. ) การปฏิบัติที่ไม่ดีบอกคุณ แต่คนอื่นไม่เห็นด้วยเนื่องจากนี่เป็นจาวาสคริปต์ที่ถูกต้อง 2. ) คำตอบของฉันให้ข้อมูลใหม่เกี่ยวกับวิธีการใช้สิ่งนี้ในหน้า HTML และไม่ใช่แค่ console.log ()
โปรแกรมเมอร์กรุงเยรูซาเล็ม

2
"ดี" เป็นอัตวิสัย มีมากกว่าหนึ่งวิธีในการสกินแมวและมีมากกว่าหนึ่งวิธีในการแก้ปัญหาการเข้ารหัส หากการแก้ปัญหานั้นง่ายและใช้งานได้แล้วเหตุใดจึงไม่ดีในความเห็นที่ถ่อมตนของคุณ
โปรแกรมเมอร์ของกรุงเยรูซาเล็ม

1
ดีครับเป็นที่ชัดเจนว่านี่ไม่ใช่มาตรฐานวัตถุประสงค์ที่ชัดเจน (และเป็นการอภิปรายที่เปิดกว้าง) เนื่องจากมีหลายคนที่ไม่เห็นด้วยกับคุณ: stackoverflow.com/questions/802854/ …และที่นี่ : stackoverflow.com/questions/18789190/why-not-document-write ดังนั้นการทำเครื่องหมายชื่อเสียงของฉันลงสำหรับความคิดเห็นเชิงอัตวิสัยของคุณนั้นไม่ค่อยดีนักเนื่องจากมีคนอื่นที่ไม่เห็นด้วยกับคุณ จำประเด็นหลักที่นี่และฉันเพิ่งให้วิธีง่ายๆในการพิมพ์ไปยังไฟล์ HTML แทน console.log ()
โปรแกรมเมอร์กรุงเยรูซาเล็ม

1
โปรดดูลิงก์สองรายการก่อนหน้าซึ่งคุณสามารถเห็นคนหลายร้อยคนที่ไม่เห็นด้วยกับคุณ นอกจากนี้ยังมีคนหลายร้อยคนที่เห็นด้วยกับคุณดังนั้นจึงไม่ใช่ปัญหาที่ชัดเจน คุณยืนยันในแบบของคุณหรือวิธีที่ค่อนข้างสูงเพราะคุณไม่สามารถแน่ใจได้ว่าใครบางคนอาจตัดสินใจว่า document.write () เป็นทางออกที่ดีที่สุดสำหรับความต้องการของเขา / เธอ
โปรแกรมเมอร์กรุงเยรูซาเล็ม

4

สำหรับปีปัจจุบันเราสามารถใช้getFullYear () จาก Date dateแต่มีฟังก์ชั่นมากมายที่คุณสามารถใช้ตามความต้องการบางฟังก์ชั่นมีดังนี้

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 ของคุณในสถานที่ที่คุณต้องการแสดงมันโดยไม่อ้างอิงถึงสคริปต์ในส่วนท้ายหรือที่อื่นเช่นคำตอบอื่น ๆ ทั้งหมด
#:

เหมือนกับคำตอบของเยรูซาเล็มโปรแกรมเมอร์แตกต่างกันเล็กน้อย
Crocsx

@Crocsx คำตอบนี้สะอาดกว่าไม่มีองค์ประกอบ HTML และ CSS คลาสที่สมมติว่าคุณใช้ bootstrap เป็นเพียงหนึ่งบรรทัดใช่ไหม?
Majali

คำถามคือเพิ่งได้ปีใน JS ไม่ได้ปีและวางในส่วนท้าย และในกรณีนี้คุณสามารถแก้ไขคำตอบอื่นได้ ต่อไป ...
Crocsx

1

คุณสามารถใช้จาวาสคริปต์แบบนี้ได้ มิฉะนั้นคุณสามารถใช้ปลั๊กอิน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

คำตอบส่วนใหญ่ที่พบที่นี่ถูกต้องเฉพาะในกรณีที่คุณต้องการปีปัจจุบันตามเขตเวลาของเครื่องท้องถิ่นและออฟเซ็ต (ฝั่งไคลเอ็นต์) - แหล่งที่มาซึ่งในสถานการณ์ส่วนใหญ่ไม่สามารถพิจารณาได้ว่าเชื่อถือได้ (เพราะอาจแตกต่างจากเครื่อง) .

แหล่งที่เชื่อถือได้คือ:

  • นาฬิกาของเว็บเซิร์ฟเวอร์ (แต่ต้องแน่ใจว่าได้ทำการอัพเดตแล้ว)
  • API เวลา & CDNs

รายละเอียด

เมธอดที่เรียกใช้บนDateอินสแตนซ์จะส่งคืนค่าตามเวลาท้องถิ่นของเครื่องของคุณ

รายละเอียดเพิ่มเติมสามารถพบได้ใน "MDN เอกสารเว็บ": JavaScript วันที่วัตถุ

เพื่อความสะดวกของคุณฉันได้เพิ่มบันทึกย่อที่เกี่ยวข้องจากเอกสารของพวกเขา:

(... ) วิธีการพื้นฐานในการดึงข้อมูลวันที่และเวลาหรือส่วนประกอบทั้งหมดทำงานในโซนเวลาท้องถิ่น (เช่นระบบโฮสต์) และชดเชย

แหล่งข้อมูลอื่นที่กล่าวถึงนี้คือ: วัตถุวันที่และเวลาของ JavaScript

เป็นสิ่งสำคัญที่จะต้องทราบว่าหากนาฬิกาของใครบางคนถูกปิดโดยไม่กี่ชั่วโมงหรือพวกเขาอยู่ในเขตเวลาที่แตกต่างกันวัตถุวันที่จะสร้างเวลาที่แตกต่างจากที่สร้างขึ้นในคอมพิวเตอร์ของคุณเอง

แหล่งที่เชื่อถือได้บางอย่างที่คุณสามารถใช้ได้คือ:

แต่ถ้าคุณไม่สนใจเกี่ยวกับความถูกต้องของเวลาหรือกรณีการใช้งานของคุณต้องการค่าเวลาเทียบกับเวลาของเครื่องท้องถิ่นคุณสามารถใช้Dateวิธีการพื้นฐานของ Javascript เช่นDate.now()หรือnew Date().getFullYear()(สำหรับปีปัจจุบัน) ได้อย่างปลอดภัย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.