ข้ามไปที่เนื้อหาหลัก

PHP คำนวณค่าปรับ เมื่อส่งคืนหนังสือเลยกำหนดส่ง โดยอ้างอิงตามวันที่ปัจจุบัน

       วันก่อนยืมหนังสือมาสี่เล่ม แต่ดันเอาไปส่งเลยวันกำหนดคืน เลยโดยค่าปรับเล่มละบาทต่อวัน วันนี้เลยลองมาเขียนโปรแกรม PHP คำนวณค่าปรับกันเล่นๆ

สอน PHP คำนวณค่าปรับ เมื่อส่งคืนหนังสือเลยกำหนดส่ง

 มาดูซอร์สโค๊ดกันเลยละกันครับ

 

<?php

$pay_per_day = 1;//ค่าปรับต่อวัน (บาท)

$return_date     = '2014-06-22';        //วันที่กำหนดส่งคืน
$today            = date('Y-m-d');    //วันที่ส่งคืนจริง

//หาจำนวนวัน กรณีที่วันส่งคืนจริง เลยวันกำหนดส่ง
$pay = 0;
$day_late_qty = 0;
if($today > $return_date){
    $time_today = strtotime($today);        //แปลงวันที่ส่งคืนจริง เป็นตัวเลข timestamp
    $time_return = strtotime($return_date);    //แปลงวันที่กำหนดส่งคืน เป็นตัวเลข timestamp

    $day_late_qty = ($time_today - $time_return) / ( 60 * 60 * 24 );
    $pay = ceil($day_late_qty) * $pay_per_day;
}
?>
<!DOCTYPE html>
<html>
  <head>
    <title>คำนวณค่าปรับส่งคืนเลยกำหนดส่ง</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <h1>คำนวณค่าปรับ! (ส่งคืนหนังสือ)</h1>
    <p>วันที่กำหนดส่ง : <?php echo $return_date;?></p>
    <p>วันที่ส่งจริง : <?php echo $today;?></p>
    <p>ส่งช้ากว่ากำหนด : <?php echo $day_late_qty;?> วัน</p>
    <p>ค่าปรับต่อวัน : <?php echo $pay_per_day;?> บาท</p>
    <h3>รวมค่าปรับ  : <?php echo $pay;?> บาท</h3>
  </body>
</html>



สำหรับการทำงานของโค๊ดด้านบนนี้มีลำดับดังนี้

  1. กำหนดค่าปรับ ให้มีค่า 1 บาทต่อวัน
  2. รับค่าวันที่กำหนดส่งคืน
  3. รับค่าวันที่ส่งคืนจริง
  4. ถ้าวันที่ส่งคืนจริงเลยกำหนดส่ง
  5. ก็เริ่มหาจำนวนวันที่เกินกำหนด ในขั้นตอนนี้ก็คำนวณโดยแปลงค่าวันที่ด้วยฟังก์ชั่น strtotime() เพื่อให้ได้ตัวเลขวันที่ในรูปแบบ timestamp 
  6. เอาไปหาผลต่าง จากนั้นก็หารด้วยจำนวนเวลาทั้งหมดของ 1 วัน ( 60 * 60 * 24 )
  7. จะได้จำนวนวันที่เลยกำหนด นำไปคูณกับราคาค่าปรับก็จะได้ค่าปรับที่ต้องจ่าย




ดูวิธีหาผลต่างของวันที่และเวลา เพิ่มเติมได้ที่

http://www.thaicreate.com/php/php-date-diff.html



"PHP ไม่ได้สร้างสุดยอดโปรแกรม แต่ PHP ช่วยให้งานคุณง่ายขึ้นต่างหาก"

PHP CI MANIA PHP Code Generator 
โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม

สนใจสั่งซื้อเพียง 4,500 บาท
http://fastcoding.phpcodemania.com/

สนับสนุนค่ากาแฟผู้เขียนได้ที่

PayPal

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

แจกฟรี!! ระบบต่างๆที่พัฒนาด้วย PHP สำหรับนำไปใช้ในงานต่างๆ

       สำหรับหลายท่านที่ขอโค้ดเข้ามาทาง Inbox ของเฟซบุ๊กแฟนเพจ หรือถามถึงระบบต่างๆหลังไมค์มานั้น ส่วนใหญ่ก็มีแจกอยู่แล้วในเว็บบอร์ด ThaiCreate.Com นะครับ และด้านล่างนี้ก็เป็นระบบต่างๆที่แจกให้นำไปลองใช้ลองศึกษากันครับ

สร้างแบบฟอร์มล็อกอิน HTML + PHP

       ผมจะสร้างระบบตัวอย่างเพื่อแสดงให้เห็นการทำงานของสคริปต์ PHP ที่ใช้ในการล็อกอินอย่างง่ายๆ นะครับ โดยที่ผมจะสร้างโฟลเดอร์ใหม่ขึ้นในไดร์ฟที่เราได้กำหนดให้เป็น Directory Root สำหรับรันสคริปต์ PHP ซึ่งผมกำหนดเอาไว้ที่ D:\www ดังนั้นผมจะสร้างโฟลเดอร์ teacher_assistant ขึ้นมาใหม่จะได้พาธเป็น D:\www\teacher_assistant สำหรับการเข้าถึง จะใช้ URL ดังนี้ http://localhost/teacher_assistant หลังจากสร้างโฟลเดอร์เสร็จเรียบร้อยก็จะเริ่มกระบวนการเตรียมโครงสร้างโปรเจ็กต์ด้วยเครื่องมือช่วยเขียนโปรแกรมชื่อว่า eclipse ซึ่งดูวิธีการสร้างโปรเจ็กต์ได้จากบทความ เริ่มต้นสร้างโปรเจ็กต์ ด้วยโปรแกรม eclipse เครื่องมือเขียนโปรแกรม php ในบทความเป็นการสร้างโปรเจ็กต์ที่มีพาธเป็นโฟลเดอร์ login แต่ในที่นี้ต้องเป็นพาธให้ตรงกับโฟลเดอร์ใหม่ที่เราได้สร้างขึ้นด้วยนะครับ

PHP กับการคิดส่วนลดเป็นเปอร์เซ็น 5%, 10%, 20% ตามช่วงราคาที่กำหนด

<?php     $total_price = 1000;     $discount = 0;         if($total_price >= 500 && $total_price < 1001){         $discount = 5;     }elseif($total_price >= 1001 && $total_price <= 5000){         $discount = 10;     }elseif($total_price >= 5001){         $discount = 20;     }         $discount_bath = ($total_price*$discount)/100; ?> <pre> ซื้อสินค้าครบ 0 ถึง 499 บาท ไม่ได้ส่วนลด ซื้อสินค้าครบ 500 ถึง 1000 บาท ได้ส่วนลด 5% ซื้อสินค้าครบ 1001 ถึง 5000บาท ได้ส่วนลด 10% ซื้อสินค้าครบ 5001 บาทขึ้นไป ได้ส่วนลด 20% </pre> <h3>รวมราคาสินค้า = <?php echo number_format($total_price,2);?></h3> <h5>ส่วนลด = <?php echo $discount;?>%  (<?php echo $discount_bath;?> บาท)</h5> <h2>ราคาหลังส่วนลด = <?php echo number_format($total_price - $discount_bath,2);?>บาท</h2> "PHP ไม่ได้สร้างสุดยอดโปรแกรม แต่ PHP ช่วยให้งานคุณง่ายขึ้นต