การแยกวันที่ออกจากสตริง

Lua:
การแยกวันที่ออกจากสตริง

วิธีการ:

Lua ไม่มีการสนับสนุนในตัวสำหรับการจัดการวันที่และเวลานอกเหนือจากความสามารถที่จำกัดที่ให้มาโดยฟังก์ชัน os.date และ os.time อย่างไรก็ตาม สามารถใช้ฟีเจอร์เหล่านี้เพื่อการแยกวิเคราะห์พื้นฐาน และสำหรับข้อกำหนดที่ซับซ้อนมากขึ้น สามารถใช้ luadate ไลบรารีภายนอก

การใช้ os.date และ os.time:

-- แปลงวันที่ที่เข้าใจได้โดยคนเป็น timestamp และกลับมา
local dateString = "2023-09-21 15:00:00"
local pattern = "(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)"
local year, month, day, hour, minute, second = dateString:match(pattern)

local timestamp = os.time({
  year = year,
  month = month,
  day = day,
  hour = hour,
  min = minute,
  sec = second
})

-- แปลง timestamp กลับเป็นรูปแบบที่เข้าใจได้โดยคน
local formattedDate = os.date("%Y-%m-%d %H:%M:%S", timestamp)
print(formattedDate)  -- ผลลัพธ์: 2023-09-21 15:00:00

การใช้ luadate (ไลบรารีภายนอก): เพื่อใช้ luadate ตรวจสอบให้แน่ใจว่ามันถูกติดตั้งผ่าน LuaRocks หรือตัวจัดการแพคเกจที่คุณเลือก luadate เพิ่มความสามารถในการแยกวิเคราะห์และจัดการวันที่และเวลาอย่างกว้างขวาง

local date = require('date')

-- แยกวิเคราะห์สตริงวันที่โดยตรง
local parsedDate = date.parse("2023-09-21 15:00:00")
print(parsedDate:fmt("%Y-%m-%d %H:%M:%S"))  -- ผลลัพธ์: 2023-09-21 15:00:00

-- เพิ่มระยะเวลา
local oneWeekLater = parsedDate:adddays(7)
print(oneWeekLater:fmt("%Y-%m-%d %H:%M:%S"))  -- ผลลัพธ์: 2023-09-28 15:00:00

ไลบรารี luadate เสนอวิธีที่มีสัญชาตญาณและทรงพลังมากขึ้นในการทำงานกับวันที่ รวมถึงการแยกวิเคราะห์จากสตริง การจัดรูปแบบ และการดำเนินการทางคณิตศาสตร์บนวันที่ ซึ่งลดความยุ่งยากในการทำงานกับข้อมูลเวลาใน Lua ลงอย่างมาก