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 Trong Tháng Php
-
[PHP] Tính Khoảng Cách Giữa 2 Ngày Bất Kỳ
-
Xử Lý Ngày Tháng Trong PHP - Viblo
-
Hướng Dẫn Xử Lý Ngày Tháng Trong Php Mới Nhất 2020
-
Tính Số Ngày Trong Php - Darkedeneurope
-
Bài 13: Các Hàm Xử Lý Ngày Tháng Trong PHP - Vi
-
Bài 17: Xử Lý Date Time Ngày Tháng Trong PHP - TanHongIT
-
Bài 29: Xử Lý Ngày Tháng Trong PHP - Freetuts
-
Xử Lý Ngày Tháng Trong PHP
-
PHP Date Và Time - Ook-code
-
Hàm Getdate() Trong PHP | Lấy Thông Tin Thời Gian Ngày Tháng Hiện Tại
-
Xử Lý Ngày Tháng Trong PHP - Trang Chủ - .vn
-
Giúp Mình Thuật Toán Tính Số Ngày Trong 1 Tháng
-
Bài 19: Hàm Xử Lý Ngày Tháng Trong PHP | Blog Thiện Minh
-
Cách Xử Lý Date Time Trong PHP Nhanh Nhất