[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-1-1-all-js2go-ep23-date-time-javascript-go-all--*":3,"academy-blog-translations-1hsnfzu9thc2rsg":79},{"data":4,"page":78,"perPage":78,"totalItems":78,"totalPages":78},[5],{"alt":6,"collectionId":7,"collectionName":8,"content":9,"cover_image":10,"cover_image_path":11,"created":12,"created_by":13,"expand":14,"id":72,"keywords":73,"locale":49,"published_at":74,"scheduled_at":13,"school_blog":70,"short_description":75,"slug":76,"status":68,"title":6,"updated":77,"updated_by":13,"views":71},"JS2GO EP.23 การทำงานกับ Date และ Time ใน JavaScript และ Go","sclblg987654321","school_blog_translations","\u003Cp>การจัดการวันที่และเวลาเป็นเรื่องสำคัญในการพัฒนาโปรแกรม ตั้งแต่การแสดงผลเวลา การบันทึก log การจัดการ timezone ไปจนถึงการคำนวณเวลาระหว่างเหตุการณ์ การทำความเข้าใจวิธีจัดการ Date และ Time ใน JavaScript และ Go จะช่วยให้ระบบของคุณทำงานได้อย่างถูกต้องและแม่นยำ ในบทความนี้เราจะเปรียบเทียบการสร้าง แปลง และคำนวณวันที่และเวลา พร้อมตัวอย่างโค้ดและแนวทางปฏิบัติที่เหมาะสม\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>การจัดการ Date และ Time ใน JavaScript\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>JavaScript มี object \u003Ccode inline=\"\">Date\u003C\u002Fcode> สำหรับจัดการวันเวลา\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>สร้าง Date Object\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-javascript\">\u002F\u002F วันที่ปัจจุบัน\nconst now = new Date();\nconsole.log(now); \u002F\u002F e.g., 2025-09-10T07:30:00.000Z\n\n\u002F\u002F วันที่กำหนด\nconst birthday = new Date('1997-03-15T00:00:00');\nconsole.log(birthday); \u002F\u002F 1997-03-15T00:00:00.000Z\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>ดึงค่า Year, Month, Day\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-javascript\">console.log(now.getFullYear()); \u002F\u002F 2025\nconsole.log(now.getMonth() + 1); \u002F\u002F เดือน 1-12\nconsole.log(now.getDate()); \u002F\u002F วัน\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>การคำนวณเวลา\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-javascript\">const tomorrow = new Date(now);\ntomorrow.setDate(now.getDate() + 1);\nconsole.log(tomorrow);\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>การแปลงเป็น String\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-javascript\">console.log(now.toISOString());    \u002F\u002F 2025-09-10T07:30:00.000Z\nconsole.log(now.toLocaleString()); \u002F\u002F ขึ้นอยู่กับ locale ของระบบ\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>ข้อดี\u003C\u002Fh3>\u003Cp>✔️ ใช้งานง่ายและ built-in\u003Cbr>✔️ รองรับ timezone พื้นฐาน\u003Cbr>✔️ สามารถใช้ร่วมกับ library เช่น Moment.js, Day.js เพื่อความสะดวก\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>ข้อจำกัด\u003C\u002Fh3>\u003Cp>✔️ Month เริ่มจาก 0 → 11 ต้องระวัง\u003Cbr>✔️ ไม่มี type-safe\u003Cbr>✔️ การคำนวณซับซ้อนควรใช้ library\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>การจัดการ Date และ Time ใน Go\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Go มี package \u003Ccode inline=\"\">time\u003C\u002Fcode> สำหรับจัดการเวลา\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>สร้าง Time Object\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">package main\n\nimport (\n    \"fmt\"\n    \"time\"\n)\n\nfunc main() {\n    now := time.Now()\n    fmt.Println(now) \u002F\u002F 2025-09-10 14:30:00 +0700 +07\n\n    birthday := time.Date(1997, time.March, 15, 0, 0, 0, 0, time.UTC)\n    fmt.Println(birthday) \u002F\u002F 1997-03-15 00:00:00 +0000 UTC\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>ดึงค่า Year, Month, Day\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">fmt.Println(now.Year())   \u002F\u002F 2025\nfmt.Println(now.Month())  \u002F\u002F September\nfmt.Println(now.Day())    \u002F\u002F 10\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>การคำนวณเวลา\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">tomorrow := now.AddDate(0, 0, 1)\nfmt.Println(tomorrow)\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>การแปลงเป็น String\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">fmt.Println(now.Format(time.RFC3339))        \u002F\u002F 2025-09-10T14:30:00+07:00\nfmt.Println(now.Format(\"2006-01-02 15:04:05\")) \u002F\u002F Custom format\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>ข้อดีของ Go\u003C\u002Fh3>\u003Cp>✔️ Type-safe\u003Cbr>✔️ Timezone management ชัดเจน\u003Cbr>✔️ การคำนวณเวลาแม่นยำและปลอดภัย\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>ข้อจำกัด\u003C\u002Fh3>\u003Cp>✔️ Syntax verbose กว่า JavaScript\u003Cbr>✔️ ต้องจำรูปแบบเวลาสำหรับ Format (2006-01-02 15:04:05 เป็น reference)\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>แนวทางปฏิบัติที่เหมาะสม\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>✔️ จัดการ Timezone ให้ถูกต้อง\u003C\u002Fp>\u003Cul>\u003Cli>JavaScript: \u003Ccode inline=\"\">.toLocaleString('en-US', { timeZone: 'Asia\u002FBangkok' })\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>Go: \u003Ccode inline=\"\">time.LoadLocation(\"Asia\u002FBangkok\")\u003C\u002Fcode> และ \u003Ccode inline=\"\">t.In(location)\u003C\u002Fcode>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>✔️ ใช้ ISO 8601 สำหรับการแลกเปลี่ยนข้อมูล\u003C\u002Fp>\u003Cul>\u003Cli>ช่วยให้ JSON, API และ database รู้จัก format เดียวกัน\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>✔️ หลีกเลี่ยงการ hard-code เดือน\u002Fวัน\u003C\u002Fp>\u003Cul>\u003Cli>JavaScript: \u003Ccode inline=\"\">getMonth() + 1\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>Go: ใช้ \u003Ccode inline=\"\">time.Month\u003C\u002Fcode> constants เช่น \u003Ccode inline=\"\">time.March\u003C\u002Fcode>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>✔️ ใช้ library สำหรับงานซับซ้อน\u003C\u002Fp>\u003Cul>\u003Cli>JavaScript: Moment.js, Day.js, Luxon\u003C\u002Fli>\u003Cli>Go: ใช้ package \u003Ccode inline=\"\">time\u003C\u002Fcode> ร่วมกับ helper functions\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Chr>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>สรุปเปรียบเทียบ Date &amp; Time JavaScript vs Go\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cfigure class=\"table\">\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Feature\u003C\u002Fth>\u003Cth>JavaScript\u003C\u002Fth>\u003Cth>Go\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>Object\u003C\u002Ftd>\u003Ctd>Date\u003C\u002Ftd>\u003Ctd>time.Time\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Create\u003C\u002Ftd>\u003Ctd>new Date()\u003C\u002Ftd>\u003Ctd>time.Date(...)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Access\u003C\u002Ftd>\u003Ctd>getFullYear(), getMonth(), getDate()\u003C\u002Ftd>\u003Ctd>Year(), Month(), Day()\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Calculation\u003C\u002Ftd>\u003Ctd>setDate(), getTime()\u003C\u002Ftd>\u003Ctd>AddDate(), Add()\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Format\u003C\u002Ftd>\u003Ctd>toISOString(), toLocaleString()\u003C\u002Ftd>\u003Ctd>Format(time.RFC3339)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Timezone\u003C\u002Ftd>\u003Ctd>limited\u003C\u002Ftd>\u003Ctd>full support\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Type Safety\u003C\u002Ftd>\u003Ctd>No\u003C\u002Ftd>\u003Ctd>Yes\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Ffigure>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>คำแนะนำ:\u003C\u002Fp>\u003Cul>\u003Cli>Frontend \u002F rapid prototyping → ใช้ JavaScript Date + libraries\u003C\u002Fli>\u003Cli>Backend \u002F API \u002F scheduling → ใช้ Go \u003Ccode inline=\"\">time\u003C\u002Fcode> package เพื่อความถูกต้องและ type-safe\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>ตอนต่อไป\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>ใน EP.24 ของซีรีส์ JS2GO เราจะพาคุณไปเรียนรู้ การจัดการ String และ Text Processing ใน JavaScript กับ Go พร้อมตัวอย่างโค้ดและแนวทางปฏิบัติที่เหมาะสม เพื่อทำงานกับข้อความได้อย่างมีประสิทธิภาพ\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>\u003Cstrong>อ่านบทความ Series อื่นๆ\u003C\u002Fstrong>\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FGolang\">\u003Cstrong>Golang The Series\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\u003Cli>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FJS2GO\">\u003Cstrong>JS2GO\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\u003Cli>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FTailwind%20CSS\">\u003Cstrong>10 Ep ที่จะให้คุณเป็นมือโปร Tailwind CSS ในชั่วข้ามคืน\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>\u003Cstrong>🔵 Facebook: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.facebook.com\u002Fsuperdev.academy.th\">\u003Cstrong>https:\u002F\u002Fwww.facebook.com\u002Fsuperdev.academy.th\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>🔴 YouTube : \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.youtube.com\u002Fchannel\u002FUC2eI2RxcA2zbTqZyHyWIfRg\">\u003Cstrong>Superdev Academy\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>📸 Instagram: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.instagram.com\u002Fsuperdevschool\u002F\">\u003Cstrong>Superdev Academy\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>🎬 TikTok: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.tiktok.com\u002F@superdevacademy?lang=th-TH\">\u003Cstrong>https:\u002F\u002Fwww.tiktok.com\u002F@superdevacademy?lang=th-TH\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>🌐 Website: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdevacademy.com\u002F\">\u003Cstrong>https:\u002F\u002Fwww.superdevacademy.com\u002F\u003C\u002Fstrong>\u003C\u002Fa>\u003Cstrong>&nbsp;\u003C\u002Fstrong>\u003C\u002Fp>","45_11zon_rzyo6k2gem.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fe7jf1pwck1gzbx4\u002F45_11zon_rzyo6k2gem.webp","2026-03-04 08:46:23.611Z","",{"keywords":15,"locale":43,"school_blog":53},[16,23,28,33,38],{"collectionId":17,"collectionName":18,"created":19,"created_by":13,"id":20,"name":21,"updated":22,"updated_by":13},"sclkey987654321","school_keywords","2026-03-04 08:46:22.799Z","9h9droip3eug1wp","Date","2026-04-10 16:13:13.317Z",{"collectionId":17,"collectionName":18,"created":24,"created_by":13,"id":25,"name":26,"updated":27,"updated_by":13},"2026-03-04 08:46:23.056Z","69c6r02qckra0e0","Time","2026-04-10 16:13:13.383Z",{"collectionId":17,"collectionName":18,"created":29,"created_by":13,"id":30,"name":31,"updated":32,"updated_by":13},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-04-10 16:07:28.339Z",{"collectionId":17,"collectionName":18,"created":34,"created_by":13,"id":35,"name":36,"updated":37,"updated_by":13},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"collectionId":17,"collectionName":18,"created":39,"created_by":13,"id":40,"name":41,"updated":42,"updated_by":13},"2026-03-04 08:45:30.765Z","nayuhpre9emd5xw","JS2GO","2026-04-10 16:12:59.160Z",{"code":44,"collectionId":45,"collectionName":46,"created":47,"flag":48,"id":49,"is_default":50,"label":51,"updated":52},"th","pbc_1989393366","locales","2026-01-22 10:59:55.832Z","twemoji:flag-thailand","s8wri3bt4vgg2ji",true,"Thai","2026-04-10 15:42:46.614Z",{"category":54,"collectionId":55,"collectionName":56,"expand":57,"id":70,"views":71},"hsa1afr8fcnd6qb","pbc_2105096300","school_blogs",{"category":58},{"blogIds":59,"collectionId":60,"collectionName":61,"created":62,"created_by":13,"id":54,"image":63,"image_alt":13,"image_path":64,"label":65,"name":41,"priority":66,"publish_at":67,"scheduled_at":13,"status":68,"updated":69,"updated_by":13},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:24:37.986Z","js2_go_2_11zon_y6paxmuz32.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fhsa1afr8fcnd6qb\u002Fjs2_go_2_11zon_y6paxmuz32.webp",{"en":41,"th":41},10,"2025-08-11 03:41:08.820Z","published","2026-04-25 02:32:14.339Z","1hsnfzu9thc2rsg",211,"e7jf1pwck1gzbx4",[20,25,30,35,40],"2025-09-23 11:23:31.375Z","เรียนรู้วิธีสร้าง แปลง และคำนวณวันที่และเวลาใน JavaScript และ Go พร้อมตัวอย่างโค้ดและแนวทางปฏิบัติที่เหมาะสม เพื่อพัฒนาระบบที่ถูกต้องและแม่นยำ","js2go-ep23-date-time-javascript-go","2026-04-25 02:48:03.244Z",1,{"th":76}]