ฟังก์ชัน Now, Today, IsToday, UTCNow, UTCToday, IsUTCToday
นำไปใช้กับ: แอปพลิเคชัน Canvas โฟลว์เดสก์ท็อป Dataverse คอลัมน์สูตร แอปพลิเคชันที่ขับเคลื่อนด้วยโมเดล Power Pages Power Platform CLI
ส่งกลับวันที่และเวลาปัจจุบัน และทดสอบว่าค่าวันที่/เวลา เป็นวันนี้หรือไม่
หมายเหตุ
คำสั่ง pac power-fx ของ PAC CLI ไม่รองรับฟังก์ชัน UTCNow, UTCToday และ IsUTCToday
Description
ฟังก์ชัน Now ส่งกลับวันที่และเวลาปัจจุบันเป็นค่าวันที่/เวลา
ฟังก์ชัน Today ส่งกลับวันที่ปัจจุบันเป็นค่าวันที่/เวลา ส่วนเวลาคือ เที่ยงคืน วันนี้ มีค่าเท่ากันตลอดทั้งวัน ตั้งแต่เที่ยงคืนวันนี้จนถึงเที่ยงคืนวันพรุ่งนี้
ฟังก์ชัน IsToday ทดสอบว่าค่าวันที่/เวลา อยู่ระหว่างเที่ยงคืนวันนี้ถึงเที่ยงคืนวันพรุ่งนี้หรือไม่ ฟังก์ชันนี้ส่งกลับเป็นค่าบูลีน (จริง หรือ เท็จ)
ฟังก์ชัน Now, Today และ IsToday ทำงานกับเวลาท้องถิ่นของผู้ใช้ปัจจุบัน
ฟังก์ชัน UTCNow, UTCToday และ IsUTCToday จะเหมือนกับฟังก์ชันที่ไม่ใช่ UTC แต่ทำงานกับค่าที่ไม่ขึ้นอยู่กับเขตเวลา และใช้เวลาสากลเชิงพิกัด (UTC)
หมายเหตุ
- UTCNow, UTCToday และ IsUTCToday มีให้ใช้เฉพาะในคอลัมน์สูตร Microsoft Dataverse for Teams เท่านั้น และใช้ได้เฉพาะกับฟิลด์และค่าที่ไม่ขึ้นอยู่กับเวลาเท่านั้น
- ตอนนี้, วันนี้ และ IsToday ไม่สามารถใช้ได้ในคอลัมน์สูตร Dataverse for Teams เนื่องจากการประเมินจะดำเนินการโดยไม่ทราบเขตเวลาท้องถิ่นของผู้ใช้ปัจจุบัน
ข้อมูลเพิ่มเติม: ทำงานกับคอลัมน์ของตารางสูตรใน Dataverse for Teams
ดูที่ วันที่, เวลา และวันที่เวลาในเอกสารชนิดข้อมูล และ การทำงานกับวันที่และเวลา สำหรับข้อมูลเพิ่มเติม
ฟังก์ชันที่เปลี่ยนแปลงได้
ตอนนี้, วันนี้, UTCNow และ UTCToday เป็นฟังก์ชันที่ไม่แน่นอน ฟังก์ชันเหล่านี้จะส่งคืนค่าที่แตกต่างกันสำหรับการประเมินแต่ละครั้ง
เมื่อใช้ในสูตรกระแสข้อมูล ฟังก์ชันที่เปลี่ยนแปลงได้จะส่งค่าที่แตกต่างกันกลับมาเท่านั้น หากมีการประเมินสูตรที่ปรากฏอีกครั้ง ถ้าไม่มีสิ่งใดเปลี่ยนแปลงในสูตรดังกล่าวจะมีค่าเดียวกันตลอดการดำเนินการของแอปของคุณ
ตัวอย่างเช่น ตัวควบคุมป้ายชื่อ Label1.Text = Now() จะไม่เปลี่ยนแปลงในขณะที่แอปของคุณทำงานอยู่ การปิดและเปิดแอปอีกครั้งเท่านั้น ที่จะส่งผลให้เป็นค่าใหม่
จะมีการประเมินฟังก์ชันใหม่ หากเป็นส่วนหนึ่งของสูตรที่มีการเปลี่ยนแปลงบางอย่าง ตัวอย่างเช่น ถ้าเราเปลี่ยนตัวอย่างของเราเพื่อเกี่ยวข้องกับตัวควบคุมแถบเลื่อน Label1.Text = DateAdd( Now(), Slider1.Value, Minutes ) ดังนั้นจะมีการดึงข้อมูลเวลาปัจจุบันทุกครั้งที่เปลี่ยนแปลงค่าของตัวควบคุมแถบเลื่อนและคุณสมบัติข้อความของป้ายชื่อเป็น reevaluated
เมื่อใช้ใน สูตรลักษณะการทำงาน ฟังก์ชันที่เปลี่ยนแปลงได้จะถูกประเมินแต่ละครั้งที่มีการประเมินสูตรลักษณะการทำงาน ดูด้านล่างสำหรับตัวอย่าง
ไวยากรณ์
การใช้เวลาท้องถิ่นของผู้ใช้
ตอนนี้()
วันนี้()
วันนี้( วันที่และเวลา )
- DateTime - จำเป็น ค่าวันที่/เวลาที่จะทดสอบ
การใช้เวลามาตรฐานสากล (UTC)
UTCNow()
UTC วันนี้()
วันนี้ UTC ( เขตเวลาเวลาอิสระ )
- TimeZoneIndependentDateTime - จำเป็น ค่าวันที่/เวลาที่ไม่ผูกกับเขตเวลาที่จะทดสอบ
ตัวอย่าง
สำหรับตัวอย่างในส่วนนี้ เวลาปัจจุบันคือ 8:58 PM ใน วันที่ 11 กรกฏาคม 2021 ในโซนเวลาแปซิฟิก (UTC-8) และภาษาคือ en-us
สูตร | คำอธิบาย | ผลลัพธ์ |
---|---|---|
ข้อความ( ตอนนี้(), "mm/dd/yyyy hh:mm:ss" ) | ดึงข้อมูลวันที่และเวลาปัจจุบันในโซนเวลาของผู้ใช้ และแสดงเป็นสตริง | "07/11/2021 20:58:00" |
ข้อความ( วันนี้(), "mm/dd/yyyy hh:mm:ss" ) | ดึงข้อมูลวันที่ปัจจุบันเท่านั้น ปล่อยให้ส่วนเวลาเป็นเที่ยงคืน และแสดงเป็นสตริง | "07/12/2021 00:00:00" |
วันนี้( ตอนนี้( ) ) | ทดสอบว่า วันที่และเวลาปัจจุบัน อยู่ระหว่างเที่ยงคืนวันนี้ถึงเที่ยงคืนวันพรุ่งนี้หรือไม่ | จริง |
วันนี้คือวันนี้() ) | ทดสอบว่าวันที่ปัจจุบัน อยู่ระหว่างเที่ยงคืนวันนี้ถึงเที่ยงคืนวันพรุ่งนี้หรือไม่ | จริง |
ข้อความ( DateAdd( Now(), 12 ), "mm/dd/yyyy hh:mm:ss" ) | ดึงข้อมูลวันที่และเวลาปัจจุบัน แล้วบวกเพิ่ม 12 วันไปยังผลลัพธ์ และแสดงเป็นสตริง | "07/23/2021 20:58:00" |
ข้อความ( DateAdd( วันนี้(), 12 ), "mm/dd/yyyy hh:mm:ss" ) | ดึงข้อมูลวันที่ปัจจุบัน แล้วบวกเพิ่ม 12 วันไปยังผลลัพธ์ และแสดงเป็นสตริง | "07/23/2021 00:00:00" |
IsToday( DateAdd( ตอนนี้(), 12 ) ) | ทดสอบว่า วันที่และเวลาปัจจุบันหลังจากบวกเพิ่ม 12 วันแล้ว อยู่ระหว่างเที่ยงคืนวันนี้ถึงเที่ยงคืนวันพรุ่งนี้หรือไม่ | เท็จ |
IsToday( DateAdd( วันนี้(), 12 ) ) | ทดสอบว่า วันที่ปัจจุบันหลังจากบวกเพิ่ม 12 วันแล้ว อยู่ระหว่างเที่ยงคืนวันนี้ถึงเที่ยงคืนวันพรุ่งนี้หรือไม่ | เท็จ |
ชั่วโมง(UTCNow()) | ดึงข้อมูลวันที่และเวลาปัจจุบันใน UTC และแยกเฉพาะชั่วโมง ซึ่งเร็วกว่าเวลาท้องถิ่น 8 ชั่วโมง | 4 |
วัน( UTCToday() ) | ดึงข้อมูลเฉพาะวันที่ใน UTC และแยกเฉพาะวัน ซึ่งเร็วกว่าเวลาท้องถิ่น 1 วัน | 12 |
วันนี้ UTC (UTCNow) | ทดสอบว่า วันที่และเวลาปัจจุบัน อยู่ระหว่างเที่ยงคืนวันนี้ถึงเที่ยงคืนวันพรุ่งนี้หรือไม่ ทั้งหมดอยู่ในเวลา UTC | จริง |
วันนี้ UTCToday() ) | ทดสอบว่าวันที่ปัจจุบันอยู่ระหว่างเที่ยงคืนวันนี้ถึงเที่ยงคืนวันพรุ่งนี้หรือไม่ ทั้งหมดอยู่ในเวลา UTC | จริง |
แสดงนาฬิกาที่ปรับปรุงแบบเรียลไทม์
เพิ่มตัวควบคุม ตัวจับเวลา ตั้งค่าคุณสมบัติ Duration เป็น 1000 และตั้งค่าคุณสมบัติ Repeat เป็น จริง
ตัวจับเวลาจะรันหนึ่งวินาที เริ่มต้นใหม่โดยอัตโนมัติ และดำเนินการในรูปแบบเดิม
ตั้งค่าของตัวควบคุมคุณสมบัติของ OnTimerEnd เป็นสูตรนี้:
ตั้งค่า(CurrentTime, Now())
เมื่อใดก็ตามที่ตัวจับเวลาเริ่มต้นใหม่ (หลังจากแต่ละวินาที) สูตรนี้จะตั้งตัวแปรส่วนกลางของ CurrentTime ให้เป็นค่าปัจจุบันของฟังก์ชัน Now
เพิ่มตัวควบคุม ป้ายชื่อ แล้วตั้งค่าคุณสมบัติ Text เป็นสูตรนี้:
ข้อความ(CurrentTime, LongTime24)
ใช้ฟังก์ชัน Text เพื่อจัดรูปแบบวันและเวลาอย่างที่คุณต้องการ หรือตั้งค่าคุณสมบัตินี้เป็นเพียงแค่ CurrentTime เพื่อแสดงชั่วโมง และนาที แต่ไม่แสดงวินาที
แสดงตัวอย่างแอป โดยการกด F5 จากนั้น เริ่มตัวจับเวลา โดยการคลิกหรือแตะ
ป้ายกำกับแสดงเวลาปัจจุบัน ในระดับวินาที
ตั้งค่าคุณสมบัติ AutoStart ของตัวจับเวลา เป็น จริง และคุณสมบัติ Visible เป็น เท็จ
ตัวจับเวลาไม่สามารถมองเห็นและเริ่มโดยอัตโนมัติ
ตั้งค่าของหน้าจอคุณสมบัติ OnStart เพื่อให้ตัวแปร CurrentTime มีค่าที่ถูกต้อง ตามตัวอย่างนี้:
ตั้งค่า(เวลาปัจจุบัน, ตอนนี้())
ป้ายกำกับปรากฏขึ้นทันทีที่แอปเริ่มต้น (ก่อนที่ตัวจับเวลาจะดำเนินการสำหรับวินาทีทั้งหมด)