Php คำนวณหาระยะห่างระหว่างวันที่

โค้ดโปรแกรม
<?php

####### รูปแบบของวันที่ ที่อาจจะเก็บลงในฐานข้อมูลแบบนี้ ######
$start_date=“17/03/2007”; // วันที่เริ่มใช้บริการ
$expire_date=“17/03/2008”;//วันสิ้นสุดการใช้บริการ
$today_date=date("d/m/Y ");//วันที่ของวันนี้

ฟังก์ชั่น explode ใช้แยกเครื่องหมาย ( / ) ออกจากข้อความ แล้วเอาข้อความที่ได้ไปแยกเก็บลงใน array

/* วันที่เริ่มใช้บริการ */
$start_explode = explode("/", $start_date);
$start_day = $start_explode[0];
$start_month = $start_explode[1];
$start_year = $start_explode[2];

/วันสิ้นสุดการใช้บริการ/
$expire_explode = explode("/", $expire_date);
$expire_day = $expire_explode[0];
$expire_month = $expire_explode[1];
$expire_year = $expire_explode[2];

/วันที่ของวันนี้/
$today_explode = explode("/", $today_date);
$today_day = $today_explode[0];
$today_month = $today_explode[1];
$today_year = $today_explode[2];

/* ฟังก์ชั่น gregoriantojd เป็นฟังก์ชั่นที่เอาไว้แปลงวันที่ เพื่อใช้คำนวณหาจำนวนวัน
รูปแบบการใช้งาน gregoriantojd ( int $month, int $day, int $year )
โฮสที่ใช้ต้องทำการเปิด extension calendar ของ php ด้วย ถึงจะใช้งานได้*/

$start = gregoriantojd($start_month,$start_day,$start_year);
$expire = gregoriantojd($expire_month,$expire_day,$expire_year);
$today = gregoriantojd($today_month,$today_day,$today_year);

$period_of_time

ขอบคุณครับ มีประโยชน์มากๆ เลยครับ

:slight_smile:

ขอบคุณครับ เก็บไว้เขียนโปรแกรมได้เลยครับ

ขอบคุณครับ เป็น code ที่เป็นขั้นตอนอ่านเข้าใจง่ายดีมากครับ
แต่ใช้งานจริง ตรง explode ลองรวบยอดแบบนี้ดูครับ

list($start_day,$start_month,$start_year) = explode("/", $start_date);
list($expire_day,$expire_month,$expire_year) = explode("/", $expire_date);
list($today_day,$toady_month,$today_year) = explode("/", $today_date);

จาก 12 บรรทัดจะเหลือ 3 บรรทัด

ขออนุญาตเก็บไว้ใช้นะครับ

แล้วเดือนกุมภาจะรู้ได้ไงว่ามันมี 28 หรือว่า 29 วันอ่ะครับ

มันคำนาณอยู่ตรงนี้ครับ (น่าจะใช่