Hướng dẫn
Quảng cáo

Tính toán chênh lệch giờ trong PHP?

Chủ đề: PHP / MySQLBài trước|Bài tiếp

Trả lời: strtotime() để chuyển đổi chuỗi ngày thành dấu thời gian để tính toán sự khác biệt

Mình chắc nhiều bạn cũng mắc ở đoạn tính toán sự chênh lệch theo giờ giữa hai thời gian cho trước. VD như đi từ chỗ này đến chỗ kia mất bao lâu? Vậy làm thế nào để tính toán trong php? Bài viết này sẽ chỉ cho bạn cách tính đơn giản.

Trong PHP, có nhiều cách để tính toán sự khác biệt giữa hai ngày. Trong hướng dẫn này, mình đang sử dụng các hàm ngày, thời gian của PHP để tính chênh lệch giờ giữa hai ngày.

Trong ví dụ này, chúng ta sẽ có ngày bắt đầu và ngày kết thúc từ người dùng. Và sau đó, chúng ta sử dụng strtotime() để chuyển đổi chuỗi ngày thành dấu thời gian để tính toán sự khác biệt.

Code  HTML
Mã này để lấy dữ liệu đầu vào: ngày bắt đầu và ngày kết thúc từ người dùng.

Ví dụ

<form id="frmDate" action="" method="post"> 
<div> 
<label style="padding-top:20px;">Start Date</label><br/> 
<input type="text" name="startdate" value="<?php if(!empty($_POST["startdate"])) { echo $_POST["startdate"]; } ?>" class="demoInputBox"> 
</div> 
<div> 
<label>End Date</label> <span id="userEmail-info" class="info"></span><br> 
<input type="text" name="enddate" value="<?php if(!empty($_POST["startdate"])) { echo $_POST["enddate"]; } ?>" class="demoInputBox"> 
</div> 
<div> 
<input type="submit" name="submit" value="Find Difference" class="btnAction"> 
</div> 
</form>

Hàm PHP để tính chênh lệch giờ
Chúng ta gọi hàm PHP này khi người dùng gửi phạm vi ngày để tính chênh lệch giờ.

Ví dụ

<?php 
function differenceInHours($startdate,$enddate){ 
$starttimestamp = strtotime($startdate); 
$endtimestamp = strtotime($enddate); 
$difference = abs($endtimestamp - $starttimestamp)/3600; 
return $difference; 
} 
if(!empty($_POST["submit"])) { 
$hours_difference = differenceInHours($_POST["startdate"],$_POST["enddate"]);
 $message = "The Difference is " . $hours_difference . " hours"; 
} ?>

Tùy thuộc vào nhu cầu của bạn, bạn có thể sửa đổi lại hàm này theo ý mình, để lấy được kết quả mong muốn


Câu hỏi liên quan

Dưới đây là một số câu hỏi thường gặp khác liên quan đến chủ đề này:

Advertisements