ข้ามไปยังเนื้อหาหลัก

คำนวณความต่างของวัน ฟรี

คำนวณความต่างที่แน่นอนระหว่างสองวัน — ปี เดือน วัน สัปดาห์ วันทำงาน (ไม่รวมวันหยุดสุดสัปดาห์) ชั่วโมง และนาที

ใช้งานได้แบบออฟไลน์เมื่อโหลดแล้ว

พรีเซ็ตด่วน

เลือกวันที่ทั้งสองเพื่อดูความแตกต่าง

การใช้งานทั่วไป

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

วิธีการทำงาน

การคำนวณทั้งหมดทำงานในเบราว์เซอร์ด้วยเลขคณิต UTC ที่เขียนขึ้นเอง — ไม่มีไลบรารีภายนอก ไม่มีการร้องขอเซิร์ฟเวอร์ เครื่องมือแยกสตริง YYYY-MM-DD เป็นส่วนประกอบของปฏิทิน คำนวณผลต่างด้วย timestamp มิลลิวินาทีจาก Date.UTC() เพื่อหลีกเลี่ยงการคลาดจาก DST และวนทีละวันเพื่อนับวันทำการจันทร์–ศุกร์

  1. 1
    แยกวิเคราะห์วันที่อย่างปลอดภัย
    สตริงวันที่แต่ละตัวถูกตรวจด้วย regex แล้วสร้างใหม่ผ่าน Date.UTC() — ไม่ใช่ new Date(string) — ผู้ใช้ที่อยู่ทางตะวันตกของ UTC จึงไม่เห็นวันในสัปดาห์เลื่อนจากการตีความอินพุตแบบวันที่อย่างเดียวตามเขตเวลาท้องถิ่นของเบราว์เซอร์
  2. 2
    การลบมิลลิวินาที UTC
    วันที่ทั้งสองถูกแปลงเป็น timestamp เที่ยงคืน UTC ด้วย Date.UTC(y, m, d) การหารจำนวนเต็มด้วย 86,400,000 ms ให้จำนวนวันเต็มที่แม่นยำซึ่งไม่ได้รับผลจากการเปลี่ยนเวลาออมแสง ซึ่งอาจทำให้วันหนึ่งดูเหมือนยาว 23 หรือ 25 ชั่วโมง
  3. 3
    รายละเอียดปฏิทินและจำนวนวันทำการ
    การแยกปี/เดือน/วันที่เขียนขึ้นเองจัดการความไม่สม่ำเสมอของความยาวเดือน (ยืมวันจากเดือนก่อนหน้าเมื่อจำเป็น) ลูปแยกไล่ทุกวัน UTC ระหว่างสองวันที่และเพิ่มตัวนับเฉพาะวันจันทร์–ศุกร์ (getUTCDay() !== 0 หรือ 6) ได้จำนวนวันทำการที่แม่นยำไม่ว่าจะใช้ภาษาใด
  4. 4
    แสดงผลลัพธ์ในทุกหน่วย
    ผลรวมจัดรูปแบบด้วย toLocaleString() ตามภาษาของหน้าเพื่อจัดกลุ่มหลักตามภาษา แล้วแสดงพร้อมกันเป็นปี/เดือน/วัน วันทั้งหมด วันทำการ สัปดาห์ ชั่วโมง และนาที คู่วันที่ปัจจุบันถูกเขียนลงใน URL ผ่าน history.replaceState ผลลัพธ์ใดก็บุ๊กมาร์กหรือแชร์เป็นลิงก์ตรงได้

เครื่องมือที่เกี่ยวข้อง

คำถามที่พบบ่อย