ทำไม getMonth () เริ่มต้นด้วย 0


10

ฉันเขียนโค้ดฟังก์ชั่นเพื่อลบวันจากค่าวันที่ใน javascript และฉันประหลาดใจที่ getMonth ของ javascript เริ่มต้นจาก 0 ถึง 11 มกราคมสำหรับธันวาคม ทำไม getMonth ของ javascript เริ่มต้นด้วย 0


4
เพราะซีstruct tmทำแบบนั้น
พอลทอมบลิน

2
ตกลงเพื่อให้ฉันถามคำถามทั่วไปมากขึ้น ทำไมคุณจะเขียนอ็อบเจกต์วันที่ที่มีดัชนีตามดัชนี 0 แต่ไม่ใช่วันปีชั่วโมงนาที ฯลฯ
มัฟฟินแมน

คำตอบ:


14

ที่คาดเดาเพื่อช่วยในการจัดทำดัชนีในอาร์เรย์

ลองนึกภาพว่าคุณมีสตริงแสดงเดือนเก็บอยู่ในอาร์เรย์และต้องการรับสตริงที่ถูกต้องโดยใช้ getMonth ()

แน่นอนว่าทำไมอาร์เรย์เริ่มต้นที่ศูนย์เป็นอีกคำถามหนึ่ง


8
ไม่ไม่ไม่!!! มันเกี่ยวข้องกับคำถามนี้
cwallenpoole

1

เป็นไปได้มากเนื่องจากการเรียกใช้ไลบรารี C เพื่อรับค่าที่จะส่งกลับจะส่งกลับหลายเดือนด้วยวิธีนี้

(และเหตุผลสำหรับการออกแบบนั้นน่าจะเป็นเพราะการเรียกไลบรารี่ได้รับการออกแบบพร้อมกับโปรแกรมที่จะพิมพ์วันที่ซึ่งดัชนีแบบ zero-based สามารถใช้โดยตรงเพื่อพิมพ์ชื่อเดือน)


1

หากองค์ประกอบหนึ่งในโครงสร้างเริ่มต้นด้วย 0 องค์ประกอบทั้งหมดควรเริ่มต้นด้วยองค์ประกอบนั้นหรือไม่มีองค์ประกอบใด ๆ ฉันค้นพบพฤติกรรมดังกล่าวบนเว็บไซต์ของฉันช้าไปหน่อย

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