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

PHP เปรียบเทียบวันที่ หาผลต่างระหว่างวันที่ 2 วัน ด้วยฟังก์ชั่น DateTime

ในตัวอย่างนี้ เราจะหาผลต่างระหว่างวันที่ 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 ที่ใช้ทั้งหมดมีดังตัวอย่างต่อไปนี้

[ 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









PHP CI MANIA PHP Code Generator 
โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม เขียนโปรแกรมง่ายและสะดวกขึ้น
สนใจสั่งซื้อราคาสุดคุ้ม >> http://fastcoding.phpcodemania.com/

ความคิดเห็น

ค้นหาในเว็บไซต์

เนื้อเพลงที่ได้รับความนิยม ในรอบสัปดาห์

ค้นหาบล็อกนี้