Hàm tính khoảng cách giữa 2 giá trị giờ, phút, giây C

Bài viết hôm nay sẽ giải quyết câu hỏi làm thế nào tính được khoảng cách giữa 2 ngày bất kỳ và lấy kết quả trả về theo các mục đích khác nhau.

1) Tính khoảng cách giữa 2 ngày

Thuật toán được mô tả như sau :

  1. 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.
  2. 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).
  3. Lấy kết quả chia cho tổng số giây trong 1 ngày (24 x 60 x 60 = 86400).
  4. 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:

Kết quả:

3

2) Lấy kết quả trả về theo định dạng 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à 01/01/2012 và 04/05/2014. Vậy hai ngày đó cách nhau bao nhiêu năm, tháng và ngày ?

a, Cách 1

b, Cách 2 (Đoạn code này chỉ áp dụng cho PHP 5.3+)

diff($date2); echo $interval->y . " years, " . $interval->m . " months, " . $interval->d . " days "; ?>

Và kết quả

0 years, 0 months, 2 days

3) Lấy kết quả trả về theo định dạng ngày, tháng, năm, giờ, phút, giâ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.

Và kết quả

1 years, 1 months, 2 days, 14 hours, 59 minutes, 1 seconds

Hi vọng bài viết này giúp ích cho các bạn. Thân ái!