มหาวิทยาลัยอุบลราชธานี
Ubon Ratchathani University
  www.ubu.ac.th   |   UBU Blog
สมัครเข้าใช้งาน    |   เข้าสู่ระบบ    
PHP คำนวณหาระยะห่างระหว่างวันที่  
โพสโดย บรรชา ไพอุปรี     วันที่ 26 สิงหาคม 2554 , 11:10:34 น.
หมวด : IT , เทคโนโลยี , มีผู้อ่านแล้ว 7,457 ครั้ง
  

<?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  = $expire-$start; //หาระยะเวลาการใช้งาน
$date_current=$expire-$today;//หาวันที่เหลืออยู่

echo ?เริ่มใช้บริการวันที่ :?,$start_date,?<br>?;
echo ?สิ้นสุดวันใช้บริการวันที่ :?,$expire_date,?<br>?;
echo ?ระยะเวลาการใช้งาน : ?,$period_of_time ,? วัน<br>? ;

echo ?<b>วันนี้</b> ?.วันที่ $today_date ขณะนี้จึงเหลือเวลาอีก :?,$date_current,? วัน จึงจะถึงวันที่ $expire_date  ซึ่งเป็นวันหมดอายุการใช้งาน<br>?;

?>

ผลลัพธ์จะออกมาเช่นนี้

เริ่มใช้บริการวันที่ :17/03/2007
สิ้นสุดวันใช้บริการวันที่ :17/03/2008
ระยะเวลาการใช้งาน : 366 วัน
วันนี้ ?.วันที่ 18/03/2007 ขณะนี้จึงเหลือเวลาอีก :365 วัน จึงจะถึงวันที่ 17/03/2008 ซึ่งเป็นวันหมดอายุการใช้งาน

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

วิธีการนำโค้ดข้างต้นไปใช้สำหรับโฮสที่ไม่ได้ลง extension calendar ของ php
พอดีผมทำให้ลูกค้าเค้าจะเอาไปใช้ที่โฮสเค้า
พอไปลงโปรแกรมปรากฎว่าโปรแกรมรันไม่ได้ครับ
เพราะว่าโฮสที่เค้าเช่าไม่ได้ลง extension calendar ของ php
ก็เลยไป Search หาวิธีมา เจอว่า  ถ้าไม่ได้ลง ก็ไม่เป็นไร
ไม่ต้องไปบอกให้เจ้าของ Server เค้าลงให้ หรือว่าเปิดให้ใช้งาน

เพียงเอาฟังก์ชั่นด้านล่างนี้ใส่ แล้ว include ไปใช้งาน  ก็ใช้งานได้ล่ะครับ
<?php

function GregorianToJD ($month,$day,$year) {

if ($month > 2) {

$month = $month - 3;

} else {

$month = $month + 9;
$year = $year - 1;

}

$c = floor($year / 100);
$ya = $year - (100 * $c);
$j = floor((146097 * $c) / 4);
$j += floor((1461 * $ya)/4);
$j += floor(((153 * $month) + 2) / 5);
$j += $day + 1721119;
return $j;

}
?>

แสดงความคิดเห็น
      เข้าสู่ระบบ
  - ต้องทำการกรอก username และ password ก่อน จึงจะทำการแสดงความคิดเห็นได้
- username และ password เป็นอันเดียวกับที่ใช้ในการ login internet ของมหาวิทยาลัยอุบลราชธานี
 

ค้นหา
 
  About Me
 
ชื่อ :  นายบรรชา ไพอุปรี
ตำแหน่ง :  นักวิชาการศึกษา
หน่วยงาน :  สำนักงานเลขานุการ
คณะ/สำนัก :  สำนักคอมพิวเตอร์
และเครือข่าย
จำนวนเรื่อง :  20
จำนวนผู้ชม :  56262
Blog :  buncha
  เรื่องย้อนหลัง
Event On Text Input
ตรวจสอบนามสกุลไฟล์ ก่อนทำการอัพโหลด
Export mysql database
ฟังก์ชั่น PHP ตรวจสอบปีงบประมาณ
การนับจำนวน textbox ในฟอร์ม
พื้นฐานเรียนรู้กับ คำสั่ง บน Linux
PHP กับฟังก์ชั่น บวก ลบวันที่ และเวลา
คำนวณหาจำนวนวัน ระหว่างวันแรก ถึง วันสุดท้าย
PHP คำนวณหาระยะห่างระหว่างวันที่
Export to CSV PHP Script
 
 
 
พัฒนาโดย สำนักคอมพิวเตอร์และเครือข่าย มหาวิทยาลัยอุบลราชธานี
© Copyright 2010 - 2015 UBON RATCHATHANI UNIVERSITY
สงวนลิขสิทธิ์ 2553 - 2558 มหาวิทยาลัยอุบลราชธานี