Tính Khoảng Cách Giữa 2 Ngày Bất Kỳ Bằng PHP - TRUNGTRINH.COM
Có thể bạn quan tâm
Việc tạo ra Datetime để phục vụ cho tính toán ngày tháng, show ngày tháng trong PHP đã quá dễ dàng. Tuy nhiên, nếu cho 2 mốc thời gian và tính khoảng cách giữa 2 ngày đó thì không phải ai cũng nghĩ ra.
Dưới đây, Trung Trịnh .Com sẽ hướng dẫn các bạn tính khoảng cách giữa 2 ngày, khoảng cách giữ một ngày trong quá khứ đến hiện tại, khoảng cách một ngày trong quá khứ đến một ngày trong tương lai.
1. Tính khoảng cách giữa 2 ngày đơn giản nhất
Thuật toán được mô tả như sau :
Dùng hàm strtotime() để tính ra số giây được tính từ thời điểm 01/01/1970 00:00:00 GMT đến hiện tại của 2 ngày được nhập vào.
Dùng hàm abs() để lấy giá trị tuyệt đối của hiệu 2 ngày đó (vì không biết ngày nào lớn hơn).
Lấy kết quả chia cho tổng số giây trong 1 ngày (24 x 60 x 60 = 86400).
Cuối cùng sử dụng hàm floor() để làm tròn số ngày trả về.
Và đây là đoạn code:
<?php $first_date = strtotime('2020-07-06'); $second_date = strtotime('2020-07-15'); $datediff = abs($first_date - $second_date); echo floor($datediff / (60*60*24)); ?>Kết quả cho ra: 9
2. Tính khoảng cách giữa 2 ngày theo đơn vị ngày, tháng, năm
Các bạn có thể thấy kết quả trả về của đoạn code ở trên là khoảng cách (số ngày) giữa 2 ngày nhập vào. Câu hỏi đặt ra làm thế nào tính chính xác khoảng cách đó ra ngày, tháng, năm. Nói một cách dễ hiểu là, giả sử tôi nhập vào 2 ngày là 06/07/2020 và 15/07/2020. Vậy hai ngày đó cách nhau bao nhiêu năm, tháng và ngày ?
Cách 1
<?php $date1 = "2020-07-06"; $date2 = "2020-07-15"; $diff = abs(strtotime($date2) - strtotime($date1)); $years = floor($diff / (365*60*60*24)); $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24)); $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); echo $years . " năm, " . $months . " tháng, " . $days . " ngày"; ?>Cách 2 (PHP 5.3+)
<?php $date1 = new DateTime("2020-07-06"); $date2 = new DateTime("2020-07-15"); $interval = $date1->diff($date2); echo $interval->y . " năm, " . $interval->m . " tháng, " . $interval->d . " ngày "; ?>Và kết quả
0 năm, 0 tháng, 9 ngày
3. Trả về số ngày, tháng, năm, giờ, phút, giây giữa 2 ngày
Tương tự như vậy, đoạn code dưới đây sẽ tính chính xác khoảng cách giữa 2 ngày ra định dạng ngày, tháng, năm, giờ, phút, giây.
<?php $date1 = "2008-11-01 22:45:00"; $date2 = "2009-12-04 13:44:01"; $diff = abs(strtotime($date2) - strtotime($date1)); $years = floor($diff / (365*60*60*24)); $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24)); $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24) / (60*60*24)); $hours = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24) / (60*60)); $minutes = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60) / 60); $seconds = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60 - $minutes*60)); echo $years." năm, ".$months." tháng, ".$days." ngày, ".$hours." giờ, ".$minutes." phút, ".$seconds." giây"; ?>Và kết quả
1 năm, 1 tháng, 2 ngày, 14 giờ, 59 phút, 1 giây
Bạn đang xem bài viết tại chuyên mục PHP / MYSQL / MYSQLi của Website Trung Trịnh. Nếu thấy bổ ích, hãy bấm like và share để chia sẻ cho mọi người cùng xem nhé!
Từ khóa » Tính Số Ngày Giữa 2 Mốc Thời Gian Php
-
[PHP] Tính Khoảng Cách Giữa 2 Ngày Bất Kỳ
-
Tìm Số Ngày Giữa Hai Ngày? - HelpEx
-
Tính Số Ngày Trong Php - Darkedeneurope
-
DATEDIFF – Tính Thời Gian Giữa 2 Mốc Thời Gian
-
Hàm Date_diff Trong Php - Freetuts
-
Tính Khoảng Cách Giữa Hai Ngày Bất Kì Trong PHP
-
Tính Số Ngày Trong Php
-
Tính Số Giờ Giữa 2 Ngày Trong PHP - Tra-loi-cau-hoi-phat-trien
-
Cách Tính Số Ngày Và Tháng Giữa 2 Mốc Thời Gian Theo điều Kiện
-
Php — Tìm Số Ngày Giữa Hai Ngày - Tra-loi-cau-hoi-phat-trien
-
Xử Lý Ngày Tháng Trong PHP - TEK4
-
Tính Toán Và Xử Lí Ngày Tháng Bằng Câu Lệnh SQL - Viblo
-
Hàm NETWORKDAYS.INTL - Microsoft Support
-
Ngôn Ngữ PHP - Hàm Date Và Time