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

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 นะครับ และด้านล่างนี้ก็เป็นระบบต่างๆที่แจกให้นำไปลองใช้ลองศึกษากันครับ

สอนเขียน PHP แสดงการจองห้องประชุมแบบไฮไลท์ตามช่วงเวลา (แบบเชื่อมต่อฐานข้อมูล MySQL)

ตัวอย่าง ผลลัพธ์ที่ได้จากการจองในฐานข้อมูล ตาราง tb_room สร้างตารางรายชื่อห้องประชุม สำหรับ id นั้นเป็น Primarykey จะกำหนดให้สร้างอัตโนมัติ ทุกครั้งที่เราเพิ่มชื่อห้องประชุมใหม่ -- -- Database: `tobedev_example` -- -- -------------------------------------------------------- -- -- Table structure for table `tb_room` -- CREATE TABLE IF NOT EXISTS `tb_room` (   `id` int(11) NOT NULL,   `name` varchar(30) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- -- Dumping data for table `tb_room` -- INSERT INTO `tb_room` (`id`, `name`) VALUES (1, 'ห้องประชุม 1'), (2, 'ห้องประชุม 2'), (3, 'ห้องประชุม 3'), (4, 'ห้องประชุม 4'), (5, 'ห้องประชุม 5'); -- -- Indexes for dumped tables -- -- -- Indexes for table `tb_room` -- ALTER TABLE `tb_room`   ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `tb_room` -- ALTER TABLE `tb_room`   MODIFY `i...

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;?...