ลักษณะการทำงานและรูปแบบของคอลัมน์วันที่และเวลา

ใน Microsoft Dataverse คุณสามารถระบุวิธีแสดงค่าวันที่และเวลาแก่ผู้ใช้ และวิธีปรับเปลี่ยนค่าตามโซนเวลา

นอกเหนือจากคุณสมบัติมาตรฐานที่พร้อมใช้งานกับคอลัมน์ส่วนใหญ่ แล้วคอลัมน์วันที่และเวลามีคุณสมบัติเพิ่มเติมสองประการ:

  • การปรับปรุงโซนเวลา: จะปรับปรุงค่าสําหรับโซนเวลาหรือไม่
  • รูปแบบ: แสดงส่วนเวลาของค่าหรือไม่

การปรับปรุงโซนเวลา

Dataverse เก็บค่าวันที่และเวลาทั้งหมดในโซนเวลา UTC เมื่อแอปของคุณแสดงค่าหรือค่าที่ประมวลผลที่ผู้ใช้ป้อน Dataverse และแอปแบบจำลองสามารถปรับตามโซนเวลาของผู้ใช้ได้ด้วยตัวเลือก ลักษณะการทำงาน ต่อไปนี้

  • เวลาท้องถิ่นของผู้ใช้: ปรับเวลาสำหรับโซนเวลาของผู้ใช้ นี่คือลักษณะการทำงานเริ่มต้นของรูปแบบ วันที่และเวลา คุณสามารถ เปลี่ยนลักษณะการทำงานนี้เป็นแบบอื่น ได้
  • ไม่ผูกกับโซนเวลา: ไม่มีการแปลงโซนเวลา นี่คือลักษณะการทำงานเริ่มต้นของรูปแบบ เฉพาะวันที่

ตั้งค่าโซนเวลาของผู้ใช้ใน ตัวเลือกส่วนบุคคล ไม่ใช่โซนเวลาของระบบใน Windows, Android, iOS หรือ macOS อย่างไรก็ตาม โซนเวลาของระบบอาจส่งผลต่อสคริปต์ไคลเอ็นต์ที่ทำงานกับวันที่ของ JavaScript

รูปแบบ

คอลัมน์วันที่และเวลาทั้งหมดมีส่วนเวลา เว้นแต่ว่าลักษณะการทํางานของคอลัมน์จะเป็นวันที่เท่านั้น รูปแบบ: กำหนดว่าแสดงส่วนเวลาของค่าหรือไม่

  • วันที่และเวลา: แสดงวันที่และเวลาของค่า
  • เฉพาะวันที่: แสดงส่วนวันที่ของค่าเท่านั้น

หมายเหตุ

ผู้ใช้ยังคงสามารถเปลี่ยนส่วนเวลาได้หาก รูปแบบ เป็น เฉพาะวันที่ ตัวอย่างเช่น โดยการเรียกใช้ API เว็บหรือโดยใช้ตัวควบคุมที่มีส่วนเวลา ลักษณะการทํางานนี้จะแตกต่างจาก วันที่เท่านั้นลักษณะการทํางาน ซึ่งส่วนเวลาไม่ได้ถูกจัดเก็บไว้เลย

แนวทางการใช้

ใช้ โซนเวลาอย่างอิสระ เมื่อไม่จําเป็นต้องมีข้อมูลโซนเวลา เช่น เวลาเช็คอินของโรงแรม ด้วยการเลือกนี้ ผู้ใช้ในโซนเวลาทั้งหมดจะเห็นค่าวันที่และเวลาเหมือนกัน

ใช้ วันที่เฉพาะ เมื่อข้อมูลเกี่ยวกับเวลาของวันและโซนเวลาไม่จําเป็น เช่น วันเกิดหรือวันครบรอบ ด้วยการเลือกนี้ ผู้ใช้ในโซนเวลาทั้งหมดจะเห็นค่าวันที่เหมือนกันทุกประการ

โซนเวลาที่เป็นอิสระกับการใช้วันที่เท่านั้นนั้นแทบจะเหมือนกับการตั้งค่าคอลัมน์เป็นวันที่เท่านั้น ใช้อันแรกหากคุณไม่แน่ใจว่าคุณต้องการส่วนเวลาในอนาคตหรือไม่

สำคัญ

หลีกเลี่ยงรูปแบบ วันที่เท่านั้น ที่มีพฤติกรรม ภายในเครื่อง ของผู้ใช้ ผู้ใช้ในเขตเวลาที่ต่างกันอาจเห็นวันที่ที่แตกต่างกัน ซึ่งไม่ได้มีไว้สำหรับสถานการณ์ส่วนใหญ่ เมื่อผู้ใช้ตั้งค่าวันที่ในแอปที่ขับเคลื่อนด้วยแบบจําลอง ส่วนเวลาจะตั้งค่าเป็นเที่ยงคืนของโซนเวลาของตนเองโดยอัตโนมัติ ซึ่งอาจทำให้วันที่ปรากฏหนึ่งวันก่อนหน้าหรือหลังจากนั้นสำหรับผู้ใช้รายอื่น

ตัวอย่างเช่น

แสดงค่า

Dataverse จัดเก็บ 2023-10-15T07:30:00Z (หรือ 2023-10-15 สำหรับลักษณะการทำงาน เฉพาะวันที่) ผู้ใช้ในโซนเวลา UTC-8 จะเห็นสิ่งเหล่านี้ในแอปแบบจำลองหรือด้วย คำขอ Web API สำหรับค่าที่จัดรูปแบบ:

พฤติกรรม รูปแบบ แสดงค่า
เวลาท้องถิ่นของผู้ใช้ วันที่และเวลา วันที่ 14 ตุลาคม 2023 เวลา 23:30 น
เวลาท้องถิ่นของผู้ใช้ เฉพาะวันที่ วันที่ 14 ตุลาคม 2023
ไม่ผูกกับโซนเวลา วันที่และเวลา วันที่ 15 ตุลาคม 2023 เวลา 07:30 น
ไม่ผูกกับโซนเวลา เฉพาะวันที่ วันที่ 15 ตุลาคม 2023
เฉพาะวันที่ - วันที่ 15 ตุลาคม 2023

ป้อนค่าในแอป

ผู้ใช้ในโซนเวลา UTC-8 ป้อน October 14th, 2023, 11:30 pm ในแอปแบบจำลอง ค่าจะถูกบันทึกใน Dataverse เป็น:

พฤติกรรม รูปแบบ ค่าที่บันทึกใน Dataverse
เวลาท้องถิ่นของผู้ใช้ วันที่และเวลา 2023-10-15T07:30:00Z
เวลาท้องถิ่นของผู้ใช้ เฉพาะวันที่ 2023-10-15T07:30:00Z
ไม่ผูกกับโซนเวลา วันที่และเวลา 2023-10-14T23:30:00Z
ไม่ผูกกับโซนเวลา เฉพาะวันที่ 2023-10-14T23:30:00Z
เฉพาะวันที่ - 2023-10-14

หากผู้ใช้ป้อนเพียงวันที่ October 14th, 2023 ส่วนเวลาจะถือว่าเป็น 00:00 น.

พฤติกรรม รูปแบบ ค่าที่บันทึกใน Dataverse
เวลาท้องถิ่นของผู้ใช้ เฉพาะวันที่ 2023-10-14T08:00:00Z
ไม่ผูกกับโซนเวลา เฉพาะวันที่ 2023-10-14T00:00:00Z
เฉพาะวันที่ - 2023-10-14

ป้อนค่าที่ไม่ถูกต้องในแอป

ไคลเอนต์ที่แตกต่างกันมีวิธีจัดการกับอินพุตที่ไม่ถูกต้องแตกต่างกัน ตัวอย่างเช่น ในโซนเวลาแปซิฟิก การประหยัดเวลาตามฤดูกาลเริ่มต้นในวันที่ 12 มีนาคม 2023 เวลา 2:00 น. ย้ายเวลาไปข้างหน้าหนึ่งชั่วโมงถึง 3:00 น. ไม่มีเวลาระหว่าง 02:00 น. ถึง 03:00 น. ของวันนั้น เมื่อผู้ใช้พยายามป้อนค่าในช่วงเวลานั้น แอปอาจดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้:

  • เปลี่ยนเป็นเวลาที่ถูกต้องก่อนหน้าหรือถัดไป
  • เปลี่ยนกลับเป็นค่าที่ทราบล่าสุด
  • แสดงข้อความแสดงข้อผิดพลาด
  • ไม่แสดงเวลาระหว่าง 2:00 น. ถึง 3:00 น. ในตัวเลือกเวลา เพื่อให้ผู้ใช้ไม่สามารถเลือกได้ตั้งแต่แรก

ในทำนองเดียวกัน แต่ละไคลเอนต์จะมีวิธีจัดการกับช่วงเวลาที่ซ้ำกันแตกต่างกัน ตัวอย่างเช่น ในโซนเวลาแปซิฟิก การออมแสงจะสิ้นสุดในวันที่ 5 พฤศจิกายน 2023 เวลา 2:00 น. โดยเลื่อนเวลาย้อนหลังหนึ่งชั่วโมงถึง 1:00 น. เวลาระหว่าง 01:00 น. ถึง 02:00 น. ของวันนั้นเกิดขึ้นซ้ำสองครั้ง เวลาเช่น 01:30 น. อาจหมายถึงโซนเวลาใดก็ได้ หากคุณต้องการแสดงหรือป้อนเวลาในช่วงดังกล่าวอย่างชัดเจน วิธีที่ดีที่สุดคือเปลี่ยนไปใช้โซนเวลาที่ไม่ใช้การปรับเวลาตามฤดูกาลชั่วคราว

รับค่าดิบด้วย Web API

Dataverse จัดเก็บ 2023-10-15T07:30:00Z (หรือ 2023-10-15 สำหรับลักษณะการทำงาน เฉพาะวันที่) ผู้ใช้ในโซนเวลาทั้งหมดจะได้รับค่าเหล่านี้ด้วย คําขอ API เว็บสําหรับค่า:

พฤติกรรม รูปแบบ ค่าดิบ
เวลาท้องถิ่นของผู้ใช้ วันที่และเวลา 2023-10-15T07:30:00Z
เวลาท้องถิ่นของผู้ใช้ เฉพาะวันที่ 2023-10-15T07:30:00Z
ไม่ผูกกับโซนเวลา วันที่และเวลา 2023-10-15T07:30:00Z
ไม่ผูกกับโซนเวลา เฉพาะวันที่ 2023-10-15T07:30:00Z
เฉพาะวันที่ - 2023-10-15

รับค่าด้วย Client API

ผู้ใช้ในโซนเวลา UTC-8 ป้อน October 14th, 2023, 11:30 pm ในแอปแบบจำลอง ฟังก์ชัน Client API เช่น formContext.getAttribute(<column name>).getValue() ส่งคืนค่าพร้อมกับการปรับโซนเวลา:

พฤติกรรม รูปแบบ Javascript dateValue.toUTCString()
เวลาท้องถิ่นของผู้ใช้ วันที่และเวลา 2023-10-15 07:30 (UTC)
เวลาท้องถิ่นของผู้ใช้ เฉพาะวันที่ 2023-10-15 07:30 (UTC)

สำหรับลักษณะการทำงาน ไม่ผูกกับโซนเวลา ค่าวันที่ของ JavaScript จะอยู่ในโซนเวลาของเบราว์เซอร์:

พฤติกรรม รูปแบบ Javascript dateValue.toString()
ไม่ผูกกับโซนเวลา วันที่และเวลา 2023-10-14 23:30 (โซนเวลาของเบราว์เซอร์)
ไม่ผูกกับโซนเวลา เฉพาะวันที่ 2023-10-14 23:30 (โซนเวลาของเบราว์เซอร์)

ค่าวันที่ของ JavaScript มีส่วนประกอบเวลาเสมอ นั่นเป็นสาเหตุที่ลักษณะการทำงาน เฉพาะวันที่ มีส่วนประกอบเวลา 00:00 น.:

พฤติกรรม รูปแบบ Javascript dateValue.toString()
เฉพาะวันที่ - 2023-10-15 00:00 (โซนเวลาของเบราว์เซอร์)

หมายเหตุ

ค่าวันที่ของ JavaScript ได้รับผลกระทบจากโซนเวลาของเบราว์เซอร์ ซึ่งมาจากการตั้งค่าระบบปฏิบัติการของอุปกรณ์

สําหรับลักษณะการทํางาน ภายในของผู้ใช้ ตีความผลลัพธ์ Client API เป็นค่า UTC ใช้ Date.getUTCDate() หรือ Date.getUTCHours() เพื่อใช้ร่วมกับมัน หากต้องการได้รับสิ่งที่ผู้ใช้เห็น ให้ใช้ getTimeZoneOffsetMinutes อย่าใช้ Date.getDate() หรือ Date.getHours() เนื่องจากฟังก์ชันเหล่านี้แสดงค่าในโซนเวลาของเบราว์เซอร์

สําหรับ ลักษณะการทํางานของโซนเวลาแบบอิสระ และ วันที่เท่านั้น ให้ตีความผลลัพธ์ Client API เป็นค่าในโซนเวลาของเบราว์เซอร์ ใช้ Date.getDate() หรือ Date.getHours() เพื่อใช้ร่วมกับมัน อย่าใช้ Date.getUTCDate() หรือ Date.getUTCHours() เนื่องจากคุณไม่จําเป็นต้องปรับสําหรับโซนเวลาใดๆ

เปลี่ยนลักษณะการทำงานเวลาท้องถิ่นของผู้ใช้

เว้นแต่ว่าผู้เผยแพร่ของโซลูชันป้องกันการเปลี่ยนแปลงลักษณะการทํางานภายในเครื่อง คุณสามารถเปลี่ยนลักษณะการทํางานของคอลัมน์วันแบบกําหนดเองที่มีอยู่จากผู้ใช้ภายในเครื่องเพื่อวันเท่านั้นหรือโซนเวลาอิสระ นี่คือการเปลี่ยนแปลงครั้งเดียว

การเปลี่ยนแปลงลักษณะการทำงานของคอลัมน์มีผลต่อค่าของคอลัมน์ที่จะเพิ่ม หรือปรับเปลี่ยนหลังจากที่มีการเปลี่ยนแปลงลักษณะการทำงานของคอลัมน์ ค่าคอลัมน์ที่มีอยู่ยังคงอยู่ในฐานข้อมูลในรูปแบบโซนเวลา UTC หากต้องการเปลี่ยนลักษณะการทำงานของค่าคอลัมน์ที่มีอยู่จาก UTC เป็น เฉพาะวันที่ คุณอาจต้องได้รับความช่วยเหลือจากนักพัฒนาเพื่อ แปลงลักษณะการทำงานของค่าวันที่และเวลาที่มีอยู่ในฐานข้อมูล

คำเตือน

ก่อนที่จะเปลี่ยนลักษณะการทํางานของคอลัมน์วันที่และเวลาที่มีอยู่ ให้ตรวจสอบการอ้างอิงทั้งหมดของคอลัมน์ เช่น กฎทางธุรกิจ เวิร์กโฟลว์ คอลัมน์จากการคํานวณ หรือคอลัมน์ค่าสะสม เพื่อให้แน่ใจว่าไม่มีปัญหาเนื่องจากการเปลี่ยนแปลงลักษณะการทํางาน หลังจากที่เปลี่ยนแปลงลักษณะการทำงานของคอลัมน์วันที่และเวลาแล้ว ให้เปิดกฎธุรกิจแต่ละข้อ เวิร์กโฟลว์ คอลัมน์ที่คำนวณได้ และคอลัมน์สรุปรายการที่ขึ้นอยู่กับคอลัมน์ที่คุณเปลี่ยน ตรวจสอบข้อมูล แล้วบันทึกเพื่อให้แน่ใจว่ามีการใช้ลักษณะการทำงานและค่าของคอลัมน์วันที่และเวลาล่าสุด

เปลี่ยนลักษณะการทำงานในระหว่างการนำเข้าโซลูชัน

เมื่อคุณนําเข้าโซลูชันที่ประกอบด้วยคอลัมน์วันที่กับ ผู้ใช้ภายในเครื่อง คุณสามารถเปลี่ยนลักษณะการทํางานเป็น วันที่เท่านั้น หรือ โซนเวลาอิสระได้

หมายเหตุ

คุณสามารถเปลี่ยนลักษณะการทำงานของคอลัมน์ เฉพาะวันที่ หรือ วันที่และเวลา ที่มีการจัดการที่มีอยู่ได้เท่านั้นหากคุณเป็นผู้เผยแพร่ หากต้องการเปลี่ยนแปลงฟิลด์เหล่านี้ ต้องอัปเกรดโซลูชันที่เพิ่มคอลัมน์ เฉพาะวันที่ หรือ วันที่และเวลา ข้อมูลเพิ่มเติม: อัปเกรดหรืออัปเดตโซลูชัน

ป้องกันการเปลี่ยนแปลงลักษณะการทำงาน

ถ้าคุณกำลังกระจายคอลัมน์วันที่แบบกำหนดเองในโซลูชันที่มีการจัดการ ป้องกันไม่ให้ผู้ใช้ใช้โซลูชันของคุณจากการเปลี่ยนแปลงลักษณะการทำงาน โดยการตั้งค่าคุณสมบัติที่มีการจัดการ CanChangeDateTimeBehavior เป็น เท็จ ข้อมูลเพิ่มเติม: ตั้งค่าคุณสมบัติที่มีการจัดการสำหรับคอลัมน์

ตัวดำเนินการในการสอบถามวันที่และเวลาไม่ได้รับการสนับสนุนสำหรับลักษณะการทำงานเฉพาะวันที่

ตัวดำเนินการในการสอบถามที่เกี่ยวข้องกับวันที่และเวลาต่อไปนี้ไม่ถูกต้องสำหรับลักษณะการทำงาน เฉพาะวันที่ จะมีข้อยกเว้นตัวดำเนินการที่ไม่ถูกต้องเกิดขึ้นเมื่อมีการใช้ตัวดำเนินการเหล่านี้ในการคิวรี

  • เก่ากว่า X นาที
  • เก่ากว่า X ชั่วโมง
  • X ชั่วโมงที่ผ่านมา
  • X ชั่วโมงถัดไป

ดูเพิ่มเติมที่

แก้ไขปัญหาของวันที่และเวลาในแอปแบบจำลอง
สร้างและแก้ไขคอลัมน์
กำหนดคอลัมน์ที่มีการคำนวณเพื่อทำให้การคำนวณด้วยตนเองเป็นแบบอัตโนมัติ
คอลัมน์คุณสมบัติที่มีการจัดการ
คุณสมบัติที่มีการจัดการ
บล็อก: การทำงานกับเขตเวลาใน Dataverse
กำหนดค่าลักษณะการทำงานและรูปแบบของคอลัมน์วันที่และเวลาโดยใช้โค้ด