0Pricing
Go Academy · บทเรียน

เวลาและระยะเวลา

แทนช่วงเวลาและช่วงระยะ

เวลาและระยะเวลา เป็นบทเรียน Go Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Go Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Go Academy มีบทเรียนทั้งหมด 4 บทเรียน

แพ็กเกจ time

แพ็กเกจ time ของ Go ใช้แทนจุดเวลาและช่วงเวลาระหว่างจุดเวลาเหล่านั้น

  • time.Time คือจุดเวลาเฉพาะ
  • time.Duration คือระยะเวลา
package main

import (
    "fmt"
    "time"
)

func main() {
    var d time.Duration = 2 * time.Second
    fmt.Println(d)
}

การรับเวลาปัจจุบัน

time.Now() ส่งคืนจุดเวลาปัจจุบันในรูปแบบ time.Time (ค่าที่แน่นอนขึ้นอยู่กับเวลาที่โปรแกรมทำงาน)

package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now()
    fmt.Println(now.Year())
}

การสร้างเวลาที่เฉพาะเจาะจง

time.Date สร้างจุดเวลาที่แน่นอนจากส่วนประกอบต่าง ๆ ได้แก่ ปี เดือน วัน ชั่วโมง นาที วินาที นาโนวินาที และตำแหน่ง

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.May, 30, 9, 0, 0, 0, time.UTC)
    fmt.Println(t)
}

การอ่านส่วนประกอบของเวลา

time.Time มีเมธอดอย่าง Year, Month, Day, Hour และ Weekday

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.May, 30, 0, 0, 0, 0, time.UTC)
    fmt.Println(t.Month(), t.Day(), t.Weekday())
}

ค่าคงที่ของระยะเวลา

สร้างระยะเวลาโดยคูณค่าคงที่ของหน่วย ได้แก่ time.Hour, time.Minute, time.Second, time.Millisecond

package main

import (
    "fmt"
    "time"
)

func main() {
    d := 1*time.Hour + 30*time.Minute
    fmt.Println(d)
}

การแปลงระยะเวลา

เมธอดอย่าง Seconds(), Minutes() และ Hours() ส่งคืนระยะเวลาในรูปแบบ float64 ตามหน่วยนั้น

package main

import (
    "fmt"
    "time"
)

func main() {
    d := 90 * time.Minute
    fmt.Println(d.Hours())
    fmt.Println(d.Seconds())
}

การเพิ่มเวลา

t.Add(d) ส่งคืนเวลาใหม่ที่เลื่อนไปตามระยะเวลาเดิม ค่าเดิมไม่เปลี่ยนแปลงเพราะ time.Time เป็นประเภทค่า

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.May, 30, 9, 0, 0, 0, time.UTC)
    later := t.Add(2 * time.Hour)
    fmt.Println(later.Hour())
}

การเพิ่มหน่วยตามปฏิทิน

t.AddDate(years, months, days) เลื่อนเวลาไปตามจำนวนในปฏิทิน โดยจัดการความยาวของเดือนและปีอธิกสุรทินได้อย่างถูกต้อง

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.January, 31, 0, 0, 0, 0, time.UTC)
    next := t.AddDate(0, 1, 0)
    fmt.Println(next.Month(), next.Day())
}

ความแตกต่างระหว่างเวลา

t2.Sub(t1) คืนค่า Duration ระหว่างเวลาสองช่วง หากได้ผลลัพธ์เป็นลบ แสดงว่า t2 เกิดขึ้นก่อน

package main

import (
    "fmt"
    "time"
)

func main() {
    a := time.Date(2026, time.May, 30, 9, 0, 0, 0, time.UTC)
    b := time.Date(2026, time.May, 30, 12, 0, 0, 0, time.UTC)
    fmt.Println(b.Sub(a))
}

การเปรียบเทียบเวลา

ใช้ Before, After และ Equal เพื่อเปรียบเทียบขณะเวลา ควรหลีกเลี่ยง == เพราะตัวดำเนินการนี้จะเปรียบเทียบเขตเวลาภายในด้วย

package main

import (
    "fmt"
    "time"
)

func main() {
    a := time.Date(2026, 5, 30, 9, 0, 0, 0, time.UTC)
    b := time.Date(2026, 5, 30, 10, 0, 0, 0, time.UTC)
    fmt.Println(a.Before(b))
}

การประทับเวลาแบบ Unix

t.Unix() ให้ค่าจำนวนวินาทีนับตั้งแต่วันที่ 1 มกราคม ค.ศ. 1970 ส่วน time.Unix(sec, 0) จะแปลงกลับเป็น time.Time

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 0, 0, 0, 0, time.UTC)
    secs := t.Unix()
    fmt.Println(time.Unix(secs, 0).UTC().Year())
}

ตรวจสอบความเข้าใจ

t2.Sub(t1) คืนค่าอะไร

สรุปทบทวน: เวลาและระยะเวลา

คุณได้เรียนรู้แบบจำลองเวลาพื้นฐานดังนี้:

  • time.Time คือขณะเวลา ส่วน time.Duration คือช่วงระยะเวลา
  • สร้างค่าด้วย Now และ Date เลื่อนเวลาด้วย Add และ AddDate
  • วัดความแตกต่างด้วย Sub และเปรียบเทียบด้วย Before/After
package main

import (
    "fmt"
    "time"
)

func main() {
    start := time.Date(2026, 5, 30, 8, 0, 0, 0, time.UTC)
    end := start.Add(45 * time.Minute)
    fmt.Println(end.Sub(start).Minutes(), "minutes")
}

คำถามที่พบบ่อย

บทเรียน “เวลาและระยะเวลา” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เวลาและระยะเวลา” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Go Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Go Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เวลาและระยะเวลา”

แทนช่วงเวลาและช่วงระยะ คุณปฏิบัติ Go Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Go Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Go Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “เวลาและระยะเวลา” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Go Academy นี้ได้ไหม

ได้ บทเรียน Go Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เวลาและระยะเวลา
  2. การจัดรูปแบบและการแยกวิเคราะห์
  3. ตัวจับเวลาและตัวนับเวลา
  4. เขตเวลา
← กลับไปที่ Go Academy