
วิธีแก้ปัญหา Exception – Call to undefined method IntlCalendar::setGregorianChange() ใน Moodle
สำหรับท่านที่ติดตั้ง Moodle บน Localhost ในเครื่องของตัวเองเพื่อทดสอบหรือพัฒนาระบบ e-Learning บางท่านอาจจะเจอปัญหา Error Exception – Call to undefined method IntlCalendar::setGregorianChange() แล้วทำอะไรไม่ได้
สาเหตุของ Error ดังกล่าว เกิดจากการตั้งค่ารูปแบบวันเวลา Regional format เป็นรูปแบบอื่นที่ไม่ใช่แบบอังกฤษ เช่น แบบไทย ซึ่งเมื่อรู้สาเหตุดังนี้แล้ว เราก็สามารถแก้ไขปัญหาได้ โดยการตั้งค่า Regional format ให้เป็นแบบอังกฤษนั่นเองครับ
สำหรับวิธีทำ มีดังนี้ (Windows 11)
- คลิกขวาที่แถบแสดงวันที่และเวลา ที่มุมขวาด้านล่างของ Windows
- คลิกคำสั่ง Adjust date and time

หน้าต่าง Settings จะถูกเปิดขึ้นมา และแท็บ Time & language จะถูกเลือกโดยอัตโนมัติ (ตอนนี้เราจะอยู่ในหน้า Time & language > Date & time)
- ให้คลิกที่คำสั่ง Language & region ภายใต้หัวข้อ Related links

ตอนนี้เราจะถูกพาเข้าสู่หน้า Time & language > Language & region
ให้สังเกตที่หัวข้อ Regional format จะมีค่าเป็น Thai (Thailand) ซึ่งเป็นสาเหตุของ Error ที่ทำให้เราต้องมาแก้ปัญหานั่นเอง

- ที่หัวข้อ Regional format ให้คลิกที่ตัวเลือกแล้วเปลี่ยนเป็น English (United States)
- หลังจากตั้งค่าแล้วก็ปิดหน้านี้ไปได้เลย

หลังจากตั้งค่า Regional format เรียบร้อยแล้ว ให้ทำการ stop และ start เซอร์วิซของ Apache ก่อนนะครับ

หลังจากนั้นเจ้าตัวเออเร่อ Exception – Call to undefined method IntlCalendar::setGregorianChange() ก็จะหายไป