tại sao getMonth () bắt đầu bằng 0


10

Tôi đã mã hóa một hàm để xóa một ngày khỏi giá trị ngày trong javascript và tôi hơi ngạc nhiên khi getMonth () của javascript bắt đầu từ 0 cho tháng 1 đến 11 cho tháng 12. Tại sao getMonth () của javascript bắt đầu bằng 0?


4
Bởi vì C struct tmđã làm theo cách đó.
Paul Tomblin

2
OK để tôi hỏi một câu hỏi chung chung hơn. Tại sao bạn lại viết một đối tượng ngày có 0 chỉ số dựa trên tháng mà không phải ngày, năm, giờ, phút, v.v.
Người đàn ông Muffin

Câu trả lời:


14

đoán, để giúp lập chỉ mục thành mảng.

Hãy tưởng tượng bạn có chuỗi hiển thị tháng được lưu trữ trong một mảng và muốn lấy chuỗi chính xác bằng getMonth ()

Tất nhiên, tại sao mảng bắt đầu từ 0 là một câu hỏi khác


8
Không không không!!! Nó liên quan đến câu hỏi này
cwallenpoole

1

Rất có thể vì cuộc gọi thư viện C được gọi để lấy giá trị trả về, trả về tháng theo cách này.

(Và lý do cho thiết kế đó rất có thể là do cuộc gọi thư viện được thiết kế cùng với chương trình để thực sự in ngày, trong đó chỉ mục dựa trên số 0 có thể được sử dụng trực tiếp để in tên tháng)


1

Nếu một phần tử trong một cấu trúc bắt đầu bằng 0 thì tất cả các phần tử cũng sẽ bắt đầu với nó hoặc không có phần tử nào trong số chúng. Tôi phát hiện ra rằng hành vi trên trang web của tôi hơi muộn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.