วันที่ใน Javascript เริ่มนับเดือน ที่ 0 ถึง 11 นะครับ
เคยเจอปัญหาตอนที่ใช้คำสั่งนี้
var date1 = new Date(2017, 1, 31);
ความตั้งใจคือต้องการ สร้างตัวแปร Date ของวันที่ 31 มกราคม
แต่ผลที่ได้ กลับกลายเป็น Fri Mar 03 2017 00:00:00 GMT+0700 (SE Asia Standard Time)
นั่นเป็นเพราะว่า javascript นับเดือนจาก 0-11 ดังนั้นถ้าใช้คำสั่งนี้
var date1 = new Date(2017, 1, 31);
จะหมายถึง 31 กุมภาพันธ์ !!! ซึ่งมันไม่มี
ถ้าเราต้องการสร้าง Date ของวันที่ 31 มกราคม ต้องใช้คำสั่งนี้
var date1 = new Date(2017, 0, 31);
ซึ่งก็คือ เดือน - 1 นั่นเองครับ