Apabila mencipta objek Tarikh baharu dalam JavaScript, argumen bulan ditentukan menggunakan nombor dari 0 hingga 11, yang mungkin kelihatan berlawanan dengan intuisi. Keanehan ini berpunca daripada asalnya dalam Java's Date API.
Java's Date API juga menggunakan hujah bulan berasaskan sifar. Kebiasaan ini diwarisi oleh JavaScript, yang dimodelkan selepas reka bentuk Java. Brendan Eich, pencipta JavaScript, mengesahkan sambungan ini melalui Twitter:
"Kami berada di bawah pesanan mgmt 'Make It Look Like Java', dan saya mempunyai sepuluh hari untuk demo. Tiada masa untuk mencipta kami API tarikh sendiri atau betulkan Java."
Tidak jelas mengapa Java pada mulanya memilih hujah bulan berasaskan sifar. Walau bagaimanapun, beberapa sebab boleh menyumbang kepada keputusan ini:
Berbeza dengan hujah bulan, hujah hari bulan adalah berasaskan 1. Pilihan ini mungkin berdasarkan keinginan untuk lebih jelas dan mudah difahami. Menentukan hari sebagai nombor dari 1 hingga 31 sepadan terus dengan hari dalam bulan biasa.
Walaupun API Tarikh JavaScript mengekalkan hujah bulan berasaskan sifar, terdapat beberapa moden alternatif yang menawarkan pengendalian tarikh yang lebih baik keupayaan:
Ini perpustakaan menyediakan API manipulasi tarikh yang fleksibel dan intuitif, menangani batasan objek Tarikh terbina dalam.
Atas ialah kandungan terperinci Mengapakah Pembina `Tarikh` JavaScript Menggunakan Argumen Bulan Berasaskan Sifar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!