วิธีแก้ปัญหา 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() ก็จะหายไป