toDateTime() แปลงสตริง ตัวเลข หรือค่าต่างๆ เป็นอ็อบเจ็กต์ Date ของ JavaScript ทำให้สามารถคำนวณเวลา เปรียบเทียบวันที่ หรือจัดการเวลาได้อย่างถูกต้อง มีประโยชน์ในการประมวลผลข้อมูลวันที่จากแหล่งต่างๆ เช่น API responses หรือ database fields
=toDateTime(value)
=toDateTime(value)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| value | string|number|Date | Yes | สตริงวันที่ (ISO 8601 เช่น ‘2024-12-20’), ตัวเลข timestamp (milliseconds หรือ seconds), หรือ Date object ที่ต้องการแปลง |
แปลงวันที่ที่ส่งมาจากฐานข้อมูลเป็นอ็อบเจ็กต์ Date
แปลงข้อความเป็นวันที่แล้วคำนวณความแตกต่างกับวันที่อื่น
{{ toDateTime('2024-12-20') }}={{ toDateTime('2024-12-20') }}
Fri Dec 20 2024 00:00:00 GMT+0000
{{ toDateTime(1734700800000) }}={{ toDateTime(1734700800000) }}
Fri Dec 20 2024 00:00:00 GMT+0000
{{ (toDateTime($json.endDate) - toDateTime($json.startDate)) / (1000 * 60 * 60 * 24) }}={{ (toDateTime($json.endDate) - toDateTime($json.startDate)) / (1000 * 60 * 60 * 24) }}
7 (จำนวนวัน)
{{ toDateTime('2024-12-20').format('YYYY-MM-DD HH:mm:ss') }}={{ toDateTime('2024-12-20').format('YYYY-MM-DD HH:mm:ss') }}
2024-12-20 00:00:00
รองรับ ISO 8601 (แนะนำเลย ✨) เช่น ‘2024-12-20’, ‘T’ format ‘2024-12-20T10:30:00Z’, Unix timestamp (milliseconds), และรูปแบบอื่นที่ JavaScript Date constructor ยอมรับ ถ้ารูปแบบไม่เข้าใจ toDateTime() อาจคืนค่า Invalid Date
toDateTime() แปลงเป็น Date object ตามไทม์โซนของระบบ (local timezone) ถ้าต้องการจัดการ UTC หรือ timezone อื่น ต้องใช้เมธอดเพิ่มเติมเช่น .toISOString() หรือ .toUTCString() ส่วนตัวผมแนะนำให้ใช้ format() ร่วมกับ timezone option
ตรวจสอบรูปแบบของข้อมูลเข้าก่อน ลองใช้ isNaN() หรือ .toString() เพื่อเช็ค Invalid Date ได้ อีกวิธีหนึ่งคือ try-catch ตอนทำการแปลง แต่เกือบทั้งหมดเจอปัญหาเพราะรูปแบบวันที่ไม่ตรงกัน
ใช้เมื่อต้องการแปลงข้อมูลวันที่จาก string หรือ timestamp เป็น Date object เพื่อการคำนวณ (หาส่วนต่าง) เปรียบเทียบวันที่ (A > B) หรือจัดรูปแบบวันที่ (format) ส่วนตัวผมใช้ toDateTime() แทบทุกครั้งที่ต้องการทำอะไรกับข้อมูลวันที่
toDateTime() เป็น JavaScript built-in function ที่ใช้ได้ใน n8n expressions สำหรับแปลงสตริงวันที่ ตัวเลข หรือค่าอื่นๆ เป็น Date object เพื่อให้สามารถคำนวณและเปรียบเทียบวันที่ได้อย่างแม่นยำ
ที่เจ๋งคือ toDateTime() รองรับรูปแบบวันที่หลายแบบพอสมควร ตั้งแต่ ISO 8601 (เลิศยิ่งนัก) ไปจนถึง Unix timestamp ต่างก็ทำได้ครับ ยิ่งไปกว่านั้น ถ้าใส่ค่าที่เป็น timestamp (milliseconds) ลงไป มันก็แปลงได้เลย
ส่วนตัวผมใช้ toDateTime() บ่อยมากตอนต้องการคำนวณส่วนต่างระหว่างสองวันที่ หรือเช็คว่าวันไหนมาก่อนวันไหน เพราะมันให้ผลลัพธ์ที่ถูกต้องเสมอ 😎