เปรียบเทียบสองวันที่

Fish Shell:
เปรียบเทียบสองวันที่

วิธีทำ:

ด้วย Fish Shell, เราสามารถเปรียบเทียบวันที่สองวันโดยใช้คำสั่ง date ด้านล่างเป็นตัวอย่าง

# การได้รับวันที่ปัจจุบันเป็นจำนวนวินาทีนับตั้งแต่ยุคของยูนิกซ์
set current_date (date +%s)

# การแปลงวันที่เฉพาะเจาะจงเป็นวินาทีนับตั้งแต่ยุคของยูนิกซ์
set specific_date (date -d "2023-04-01" +%s)

# การเปรียบเทียบวันที่
if test $specific_date -lt $current_date
    echo "วันที่เฉพาะเจาะจงเกิดขึ้นก่อนวันที่ปัจจุบัน"
else if test $specific_date -eq $current_date
    echo "วันที่เหมือนกัน"
else
    echo "วันที่เฉพาะเจาะจงเกิดขึ้นหลังจากวันที่ปัจจุบัน"
end

ตัวอย่างการแสดงผลหากวันที่ปัจจุบันเกินวันที่ 1 เมษายน 2023:

วันที่เฉพาะเจาะจงเกิดขึ้นก่อนวันที่ปัจจุบัน

ลึกซึ้งยิ่งขึ้น

ตามประวัติศาสตร์, การเปรียบเทียบวันที่ในการเขียนโปรแกรมเป็นเรื่องยากเนื่องจากมีรูปแบบวันที่และเขตเวลาที่หลากหลาย Fish Shell ทำให้งานนี้ง่ายขึ้นด้วยฟังก์ชัน date ที่ติดตั้งมาพร้อม, โดยแปลงวันที่เป็นวินาทีนับตั้งแต่ยุคยูนิกซ์ (วันที่ 1 มกราคม 1970) ซึ่งให้จุดเวลารักษามาตรฐานที่เราสามารถเปรียบเทียบกัน

ตัวเลือกที่นอกเหนือจาก Fish Shell สำหรับเปรียบเทียบวันที่ รวมถึงภาษาสคริปต์เช่น Python หรือการใช้เครื่องมือจัดการวันที่ที่มีอยู่ในระบบของ Unix, เช่น dateutil ใน GNU core utilities (coreutils) ในทางการนำไปใช้, เมื่อเราใช้ date +%s, Fish โดยภายในจะเรียกคำสั่ง date ของระบบ, ซึ่งเป็นเหตุผลว่าทำไมมันจึงมีประสิทธิภาพต่อการใช้งานข้ามแพลตฟอร์ม

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

ดูเพิ่มเติม