[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-en-1-1-all-js2go-ep23-date-time-javascript-go-all--*":3,"academy-blog-translations-f1etjhn3pdq6j33":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 Working with Date and Time in JavaScript and Go","sclblg987654321","school_blog_translations","\u003Cp>Managing dates and times is crucial in software development — from displaying timestamps, logging, handling timezones, to calculating the duration between events. Understanding how to work with Date and Time in JavaScript and Go ensures your system operates accurately and reliably. In this article, we’ll compare creating, converting, and calculating dates and times, along with practical code examples and best practices.\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Date and Time in JavaScript\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>JavaScript provides the built-in Date object to handle date and time operations.\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>Creating a Date Object\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-javascript\">\u002F\u002F Current date\nconst now = new Date();\nconsole.log(now); \u002F\u002F e.g., 2025-09-10T07:30:00.000Z\n\n\u002F\u002F Specific date\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>Accessing Year, Month, and Day\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-javascript\">console.log(now.getFullYear()); \u002F\u002F 2025\nconsole.log(now.getMonth() + 1); \u002F\u002F Month 1-12\nconsole.log(now.getDate()); \u002F\u002F Day\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>Calculating Dates\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>Converting to 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 Depends on system locale\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>Advantages\u003C\u002Fh3>\u003Cp>✔️ Easy to use and built-in\u003Cbr>✔️ Basic timezone support\u003Cbr>✔️ Compatible with libraries like Moment.js or Day.js for added convenience\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>Limitations\u003C\u002Fh3>\u003Cp>✔️ Month index starts from 0 → 11 (careful!)\u003Cbr>✔️ Not type-safe\u003Cbr>✔️ Complex calculations may require a library\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Date and Time in Go\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Go provides the time package for handling date and time operations.\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>Creating a 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>Accessing Year, Month, and 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>Calculating Dates\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>Converting to 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>Advantages of Go\u003C\u002Fh3>\u003Cp>✔️ Type-safe\u003Cbr>✔️ Clear timezone management\u003Cbr>✔️ Accurate and safe date calculations\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>Limitations\u003C\u002Fh3>\u003Cp>✔️ More verbose syntax than JavaScript\u003Cbr>✔️ Must remember reference time format for formatting (\u003Ccode inline=\"\">2006-01-02 15:04:05\u003C\u002Fcode>)\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Best Practices\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>✔️ Handle Timezones correctly\u003Cbr>JavaScript: \u003Ccode inline=\"\">.toLocaleString('en-US', { timeZone: 'Asia\u002FBangkok' })\u003C\u002Fcode>\u003Cbr>Go: \u003Ccode inline=\"\">time.LoadLocation(\"Asia\u002FBangkok\")\u003C\u002Fcode> and \u003Ccode inline=\"\">t.In(location)\u003C\u002Fcode>\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>✔️ Use ISO 8601 for data exchange\u003Cbr>Ensures consistent format for JSON, APIs, and databases\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>✔️ Avoid hard-coding months\u002Fdays\u003Cbr>JavaScript: \u003Ccode inline=\"\">getMonth() + 1\u003C\u002Fcode>\u003Cbr>Go: Use \u003Ccode inline=\"\">time.Month\u003C\u002Fcode> constants, e.g., \u003Ccode inline=\"\">time.March\u003C\u002Fcode>\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>✔️ Use libraries for complex tasks\u003Cbr>JavaScript: Moment.js, Day.js, Luxon\u003Cbr>Go: \u003Ccode inline=\"\">time\u003C\u002Fcode> package with helper functions\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Chr>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>JavaScript vs Go: Date &amp; Time Comparison\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>\u003Ccode inline=\"\">new Date()\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">time.Date(...)\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Access\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">getFullYear()\u003C\u002Fcode>, \u003Ccode inline=\"\">getMonth()\u003C\u002Fcode>, \u003Ccode inline=\"\">getDate()\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">Year()\u003C\u002Fcode>, \u003Ccode inline=\"\">Month()\u003C\u002Fcode>, \u003Ccode inline=\"\">Day()\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Calculation\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">setDate()\u003C\u002Fcode>, \u003Ccode inline=\"\">getTime()\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">AddDate()\u003C\u002Fcode>, \u003Ccode inline=\"\">Add()\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Format\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">toISOString()\u003C\u002Fcode>, \u003Ccode inline=\"\">toLocaleString()\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">Format(time.RFC3339)\u003C\u002Fcode>\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>Recommendation:\u003Cbr>Frontend \u002F rapid prototyping → Use JavaScript Date + libraries\u003Cbr>Backend \u002F API \u002F scheduling → Use Go time package for accuracy and type-safety\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Next Episode\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>In JS2GO EP.24, we’ll explore String and Text Processing in JavaScript and Go, including code examples and best practices for handling textual data efficiently.\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp data-start=\"498\" data-end=\"834\">\u003Cstrong>Read more\u003C\u002Fstrong>\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp data-start=\"498\" data-end=\"834\">\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FGolang\">\u003Cstrong>Golang The Series\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp data-start=\"498\" data-end=\"834\">\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FJS2GO\">\u003Cstrong>JS2GO\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp data-start=\"498\" data-end=\"834\">\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fen\u002Fblogs\u002Fcategories\u002FTailwind%20CSS\">\u003Cstrong>10 Eps That Will Make You a Pro Tailwind CSS Overnight\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\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>Superdev Academy\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\u002Fen\">\u003Cstrong>https:\u002F\u002Fwww.superdevacademy.com\u002Fen\u003C\u002Fstrong>\u003C\u002Fa>\u003Cstrong>&nbsp;\u003C\u002Fstrong>\u003C\u002Fp>","46_11zon_cs3i6mikms.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F02wiw7wl4moxq1n\u002F46_11zon_cs3i6mikms.webp","2026-03-04 08:46:24.101Z","",{"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:45:30.765Z","nayuhpre9emd5xw","JS2GO","2026-04-10 16:12:59.160Z",{"collectionId":17,"collectionName":18,"created":24,"created_by":13,"id":25,"name":26,"updated":27,"updated_by":13},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"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:46:22.799Z","9h9droip3eug1wp","Date","2026-04-10 16:13:13.317Z",{"collectionId":17,"collectionName":18,"created":39,"created_by":13,"id":40,"name":41,"updated":42,"updated_by":13},"2026-03-04 08:46:23.056Z","69c6r02qckra0e0","Time","2026-04-10 16:13:13.383Z",{"code":44,"collectionId":45,"collectionName":46,"created":47,"flag":48,"id":49,"is_default":50,"label":51,"updated":52},"en","pbc_1989393366","locales","2026-01-22 11:00:02.726Z","twemoji:flag-united-states","qv9c1llfov2d88z",false,"English","2026-04-10 15:42:46.825Z",{"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":21,"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":21,"th":21},10,"2025-08-11 03:41:08.820Z","published","2026-04-25 02:32:14.339Z","f1etjhn3pdq6j33",206,"02wiw7wl4moxq1n",[20,25,30,35,40],"2025-09-23 11:23:39.571Z","Learn how to create, convert, and calculate dates and times in JavaScript and Go with practical code examples and best practices for building accurate and reliable systems.","js2go-ep23-date-time-javascript-go","2026-04-25 02:48:03.412Z",1,{"en":76}]