Hôm nay trong bài đăng này, chúng ta sẽ xem cách tính toán và sau đó lấy chênh lệch thời gian giữa hai thời điểm trong PHP
Bạn có thể nhận thấy trên mạng truyền thông xã hội như Facebook hiển thị một bài đăng được xuất bản “1 giờ trước” hoặc “2 phút trước” hoặc đại loại như thế. Trong trường hợp đó, nó cũng thực sự đang tính chênh lệch múi giờ. bây giờ tôi sẽ xem cách dễ nhất để nhận chênh lệch múi giờ trong PHP
Hãy theo tôi…
Lấy sự khác biệt giữa hai lần là một nhiệm vụ khá dễ dàng. PHP đã có sẵn lớp DateTime có thể làm điều đó
Dưới đây là một ví dụ mà chúng tôi đã lấy hai chuỗi ngày thời gian và hiển thị nó
$time1 = new DateTime['2017-01-23 18:16:25']; $time2 = new DateTime['2019-01-23 11:36:28']; $timediff = $time1->diff[$time2]; echo $timediff->format['%y year %m month %d days %h hour %i minute %s second']."
";
Đoạn mã PHP trên sẽ in kết quả mà chúng ta có thể thấy bên dưới
1 year 11 month 30 days 17 hour 20 minute 3 second
Bạn cũng có thể in riêng giây, phút, giờ, ngày, tháng và năm chỉ bằng cách gọi các phương thức like từ lớp DateTime
echo $timediff->s."
"; echo $timediff->i."
"; echo $timediff->h."
"; echo $timediff->d."
"; echo $timediff->m."
"; echo $timediff->y."
";
Ngoài ra, đọc
- Hiển thị mã HTML trên trang web bằng PHP
- Gửi SMS đến số điện thoại bằng Twilio trong PHP
Nhận chênh lệch múi giờ với thời gian hiện tại
Bây giờ nếu chúng ta muốn lấy sự khác biệt về thời gian giữa thời gian hiện tại và thời gian trước đó, thì chúng ta chỉ cần đặt đối tượng DateTime hiện tại là “new DateTime[]” như bên dưới
$time = new DateTime['2018-01-23 18:16:25']; $timediff = $time->diff[new DateTime[]]; echo $timediff->format['%y year %m month %d days %h hour %i minute %s second']."
";
Đầu ra sẽ giống như bạn có thể thấy bên dưới tùy thuộc vào thời gian hiện tại
1 year 0 month 12 days 23 hour 28 minute 22 second
Vậy là chúng ta đã tính thành công chênh lệch giữa hai thời điểm hoặc ngày tháng. Tôi hy vọng bạn đã hiểu
Theo mặc định, không có phương thức nào có sẵn trên lớp DateTime
hoặc DateInterval
để lấy sự khác biệt giữa hai đối tượng DateTime
trong vài giây. Do đó, bạn có thể lấy chênh lệch dấu thời gian của hai ngày hoặc tự tính số giây
So sánh dấu thời gian để nhận số giây giữa hai ngày
Chúng ta có thể chỉ cần so sánh dấu thời gian của hai ngày để có được sự khác biệt tính bằng giây. Ví dụ
$start = new DateTime['2011-12-31 00:00:00']; $end = new DateTime['2021-01-01 00:00:00']; echo $end->getTimestamp[] - $start->getTimestamp[]; // output: 284169600
Xin lưu ý rằng việc so sánh dấu thời gian có thể dẫn đến sự cố với ngày trước năm 1970 và sau năm 2038
Tính số giây giữa hai ngày
Bạn có thể tính số giây giữa hai ngày theo cách sau
$start = new DateTime['2011-12-31 00:00:00']; $end = new DateTime['2021-01-01 00:00:00']; $diff = $start->diff[$end]; $daysInSecs = $diff->format['%r%a'] * 24 * 60 * 60; $hoursInSecs = $diff->h * 60 * 60; $minsInSecs = $diff->i * 60; $seconds = $daysInSecs + $hoursInSecs + $minsInSecs + $diff->s; echo $seconds; // output: 284169600
Việc tính toán hoạt động theo cách sau
- Sử dụng , thêm dấu trừ khi kết quả là âm;
- Sử dụng cung cấp cho chúng tôi tổng số ngày giữa hai ngày;
- Sử dụng định dạng
1 year 11 month 30 days 17 hour 20 minute 3 second
0 cùng nhau, chúng ta có thể nhận được số ngày âm/dương. Sử dụng điều đó, chúng ta có thể chuyển đổi số ngày thành giây bằng cách nhân nó với giờ trong một ngày, phút trong một giờ và giây trong một phút [i. e.1 year 11 month 30 days 17 hour 20 minute 3 second
1]; - Phép tính ở bước cuối cùng không tính đến giờ, phút và giây trong chênh lệch ngày [vì chúng không được bao gồm trong định dạng
1 year 11 month 30 days 17 hour 20 minute 3 second
2]. Để bao gồm những thứ đó, chúng tôi chỉ cần sử dụng và chuyển đổi chúng thành giây như trong ví dụ trên
Hy vọng bạn tìm thấy bài viết này hữu ích. Nó được xuất bản vào ngày 01 tháng 1 năm 2021. Hãy thể hiện tình yêu và sự ủng hộ của bạn bằng cách
Tính chênh lệch thời gian và ngày tháng hoặc khoảng thời gian giữa hai ngày và giờ. Đếm năm, tháng, ngày, giờ, phút và giây thực tế dựa trên ngày bạn gửi;
Máy tính liên quan. Ngày ± Ngày
Định dạng ngày
Đối với kiểu định dạng ngày của Hoa Kỳ, hãy sử dụng dấu gạch chéo lên [/], dấu chấm [. ] hoặc dấu gạch ngang [-]
- tháng/ngày/năm
- mm. đ. yyyy
- mm-dd-yyyy
Đối với kiểu định dạng ngày của Châu Âu hoặc Châu Âu, hãy sử dụng dấu gạch chéo lên [/], dấu chấm [. ] hoặc dấu gạch ngang [-]
- đ/tháng/năm
- đ. mm. yyyy
- dd-mm-yyyy
Đối với kiểu định dạng ngày quốc tế theo ISO 8601, chỉ sử dụng dấu gạch ngang [-]
Ngày hôm nay dựa trên Giờ chuẩn Greenwich [GMT] hoặc Giờ phối hợp quốc tế [UTC]
định dạng thời gian
Cả hai đầu vào thời gian nên sử dụng cùng một định dạng, hh. mm. ss như giờ. phút. giây. Nếu bạn sử dụng AM và PM, bạn phải có giờ nhưng phút và giây là tùy chọn. Nếu bạn không sử dụng AM và PM, bạn phải có giờ và phút nhưng giây là tùy chọn. Nếu bạn nhập ký hiệu đồng hồ 24 giờ, giờ và phút là bắt buộc trong khi giây là tùy chọn
Sử dụng máy tính này làm máy tính chênh lệch ngày và giờ. Tính thời gian trôi qua giữa 2 ngày và giờ