PowerShell:
เปรียบเทียบสองวันที่
วิธีทำ:
# มาเริ่มจากการเอาวันที่ของวันนี้มาก่อน
$today = Get-Date
# และนี่คือวันที่เฉพาะเจาะจงหนึ่งวัน
$someOtherDate = Get-Date "2023-03-17"
# พวกมันเท่ากันหรือไม่?
$today -eq $someOtherDate
# วันนี้มีค่ามากกว่า (หลังจาก) วันที่อื่นหรือไม่?
$today -gt $someOtherDate
# แล้วถ้าต้องการตรวจสอบว่ามันเกิดขึ้นก่อนหรือไม่ล่ะ?
$today -lt $someOtherDate
# มาดูผลลัพธ์กันเถอะ
False
True
False
ลงลึก
ย้อนกลับไปในยุคหินของการคอมพิวติ้ง—ไม่จริงด้วยซ้ำ แต่คุณรู้ล่ะ ยุคแรกๆ—วันที่เป็นเรื่องยุ่งยาก เราได้พัฒนาไกลอย่างมากด้วยมาตรฐาน และ PowerShell ได้ทำให้มันง่ายขึ้นอีก
นี่คือส่วนที่ควรตระหนักถึง:
ประวัติ: คอมพิวเตอร์เคยจัดการกับวันที่ในรูปแบบต่างๆ ทำให้เกิดความสับสนและบักแบบ Y2K ได้ PowerShell ใช้โครงสร้าง
DateTime
ของ .NET ช่วยหลีกเลี่ยงความโกลาหลนั้นทางเลือก: คุณยังสามารถใช้
Compare-Object
หรือใช้วิธีการจากอ็อบเจกต์[datetime]
เช่น.AddDays()
ในการทำการคำนวณก่อนการเปรียบเทียบ จำไว้ว่าให้ใช้Measure-Command
เพื่อทดสอบผลกระทบด้านประสิทธิภาพรายละเอียดการดำเนินการ: วันที่ใน PowerShell เป็นอ็อบเจกต์ที่มีคุณสมบัติและวิธีการของตัวเอง การเปรียบเทียบวันที่ทำได้ด้วยตัวดำเนินการ (
-eq
,-lt
,-gt
), และด้วยการโอเวอร์โหลดตัวดำเนินการ PowerShell รู้ว่าคุณกำลังจัดการกับวันที่ ไม่ใช่แค่สตริงหรือตัวเลข
ในระดับแอสเซมบลี การเปรียบเทียบวันที่แปลเป็นการเปรียบเทียบจำนวนเติ๊ก (ช่วง 100 นาโนวินาทีตั้งแต่วันที่ 1/1/0001) ดังนั้นคุณจึงเปรียบเทียบจำนวนเต็มขนาดใหญ่ ซึ่งมีประสิทธิภาพ