ในตัวอย่างนี้ เราจะหาผลต่างระหว่างวันที่ 2 วันด้วยฟังก์ชั่น PHP DateTime Class ซึ่งจะมีให้เรียกใช้ตั้งแต่ PHP เวอร์ชั่น 5.2.0 ขึ้นไป
กำหนดให้ตัวแปร PHP ชื่อ $date1 และ $date2 รับค่าจากการส่งค่าแบบฟอร์มแบบ POST โดยจะใช้ isset() ตรวจสอบค่าก่อนว่าได้ส่งมาหรือไม่ ถ้ายังไม่ได้ส่งค่าจากแบบฟอร์มมา จะเซ็ตให้เป็นค่าว่าง เพราะกรณีเปิดหน้าเว็บขึ้นมา จะยังไม่ได้ส่งค่าใดๆ
เมื่อได้ค่าจากแบบฟอร์มเราจะเรียกคลาส DateTime() ใน PHP คำนวณค่าให้ด้วยเมธอด/ฟังก์ชั่น diff() จากนั้นก็เซ็ต format() ให้อยู่ในรูปแบบที่ต้องการ ซึ่งอ่านเพิ่มเติมเกี่ยวกับรูปแบบได้ที่
Supported Date and Time Formats
http://php.net/manual/en/datetime.formats.php
สำหรับซอร์สโค้ด PHP ที่ใช้ทั้งหมดมีดังตัวอย่างต่อไปนี้
The DateTime class
http://php.net/manual/en/class.datetime.php
How to calculate the difference between two dates using PHP?
https://stackoverflow.com/questions/676824/how-to-calculate-the-difference-between-two-dates-using-php
PHP CI MANIA - PHP Code Generator
กำหนดให้ตัวแปร PHP ชื่อ $date1 และ $date2 รับค่าจากการส่งค่าแบบฟอร์มแบบ POST โดยจะใช้ isset() ตรวจสอบค่าก่อนว่าได้ส่งมาหรือไม่ ถ้ายังไม่ได้ส่งค่าจากแบบฟอร์มมา จะเซ็ตให้เป็นค่าว่าง เพราะกรณีเปิดหน้าเว็บขึ้นมา จะยังไม่ได้ส่งค่าใดๆ
เมื่อได้ค่าจากแบบฟอร์มเราจะเรียกคลาส DateTime() ใน PHP คำนวณค่าให้ด้วยเมธอด/ฟังก์ชั่น diff() จากนั้นก็เซ็ต format() ให้อยู่ในรูปแบบที่ต้องการ ซึ่งอ่านเพิ่มเติมเกี่ยวกับรูปแบบได้ที่
Supported Date and Time Formats
http://php.net/manual/en/datetime.formats.php
สำหรับซอร์สโค้ด PHP ที่ใช้ทั้งหมดมีดังตัวอย่างต่อไปนี้
[ PHP Code ]
<?php
$date1 = isset($_POST['date1']) ? $_POST['date1'] : '';
$date2 = isset($_POST['date2']) ? $_POST['date2'] : '';
$datetime1 = new DateTime($date1);
$datetime2 = new DateTime($date2);
$interval = $datetime1->diff($datetime2);
$diff_result = $interval->format('%y ปี %m เดือน %d วัน');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.8.0/css/bootstrap-datepicker.min.css"/>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.8.0/js/bootstrap-datepicker.min.js"></script>
</head>
<body>
<div class="jumbotron text-center">
<h1>เปรียบเทียบวันที่ ปี เดือน วัน ผลต่างระหว่างวันที่ 2 วัน</h1>
</div>
<div class="container">
<div class="row">
<form class="form-horizontal" method="POST">
<div class="form-body">
<!-- Begin cloned dynamic list section -->
<div id="date1" class="clonedInput_4">
<div class="form-group">
<label class="control-label col-md-3 label_date">Date 1</label>
<div class="col-md-3 fields">
<div id="name_data">
<div class="input-group">
<input class="form-control form-control-inline input-medium datepicker"
name="date1" value="<?php echo $date1;?>" />
</div>
</div>
</div>
</div>
</div>
<div id="date2" class="clonedInput_4">
<div class="form-group">
<label class="control-label col-md-3 label_date">Date 2</label>
<div class="col-md-3 fields">
<div id="name_data">
<div class="input-group">
<input class="form-control form-control-inline input-medium datepicker"
name="date2" value="<?php echo $date2;?>" />
</div>
</div>
</div>
</div>
</div>
<div class="clonedInput_4">
<div class="form-group">
<label class="control-label col-md-3 label_date">ผลลัพธ์</label>
<div class="col-md-3 fields">
<div id="name_data">
<div class="input-group">
<?php echo $diff_result;?>
</div>
</div>
</div> </div>
</div>
<div class="form-group">
<label class="control-label col-md-3"></label>
<div class="col-md-4">
<button type="submit" id="btnAdd_4" name="btnAdd_4" class="btn btn-primary">เปรียบเทียบวันที่</button>
</div>
</div>
</div>
</form>
</div>
<script>
$('.datepicker').datepicker({});
</script>
</body>
</html>
คีย์เวิร์ดสำหรับค้นหาโค้ด PHP
php date diff day month year
หน้าเว็บที่เกี่ยวข้อง
The DateTime class
http://php.net/manual/en/class.datetime.php
How to calculate the difference between two dates using PHP?
https://stackoverflow.com/questions/676824/how-to-calculate-the-difference-between-two-dates-using-php
ความคิดเห็น
แสดงความคิดเห็น