Làm cách nào để tính khoảng thời gian trong PHP?

Many people have commented on doing a reverse interval on a date time.  I personally find a backwards year to be a little strange to think about and instead opt to work with just intervals.  This is the easiest I have found.

$one_year = new DateInterval('P1Y');
$one_year_ago = new DateTime();
$one_year_ago->sub($one_year);
?>

Instead of:

$one_year_ago = new DateInterval( "P1Y" );
$one_year_ago->invert = 1;
$one_year_ago = new DateTime();
$one_year_ago->add($one_year);
?>

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 chênh lệch 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

Đối với điều này, chúng tôi cần một ngày bắt đầu và một ngày kết thúc. Chúng tôi sẽ tính chênh lệch thời gian của họ tính bằng phút bằng cách sử dụng hàm date_diff(). Cú pháp đúng để sử dụng hàm này như sau

date_diff($DateTimeObject1, $DateTimeObject2);

Hàm tích hợp sẵn date_diff() có hai tham số. Các chi tiết của các thông số của nó như sau

Tham sốMô tả
format('%R%a days');
echo "\n";
$minutes = $difference->days * 24 * 60;
$minutes += $difference->h * 60;
$minutes += $difference->i;
echo("The difference in minutes is:");
echo $minutes.' minutes';
?>
3bắt buộcĐó là một đối tượng
format('%R%a days');
echo "\n";
$minutes = $difference->days * 24 * 60;
$minutes += $difference->h * 60;
$minutes += $difference->i;
echo("The difference in minutes is:");
echo $minutes.' minutes';
?>
4. Nó đại diện cho ngày bắt đầu.
format('%R%a days');
echo "\n";
$minutes = $difference->days * 24 * 60;
$minutes += $difference->h * 60;
$minutes += $difference->i;
echo("The difference in minutes is:");
echo $minutes.' minutes';
?>
5bắt buộcNó cũng là một đối tượng
format('%R%a days');
echo "\n";
$minutes = $difference->days * 24 * 60;
$minutes += $difference->h * 60;
$minutes += $difference->i;
echo("The difference in minutes is:");
echo $minutes.' minutes';
?>
4, Nó đại diện cho ngày kết thúc

Hàm này trả về sự khác biệt giữa ngày bắt đầu và ngày kết thúc khi thành công. Nó trả về FALSE khi thất bại

Chương trình dưới đây cho thấy cách chúng ta có thể sử dụng hàm date_diff() để tính chênh lệch múi giờ tính bằng phút

format('%R%a days');
echo "\n";
$minutes = $difference->days * 24 * 60;
$minutes += $difference->h * 60;
$minutes += $difference->i;
echo("The difference in minutes is:");
echo $minutes.' minutes';
?>

Hàm date_diff() đã trả về một đối tượng đại diện cho sự khác biệt giữa hai ngày

đầu ra

The difference in days is:+366 days
The difference in minutes is:527040 minutes

Bây giờ chúng ta sẽ tìm sự khác biệt giữa thời gian

h;
echo "\n";
$minutes = $difference->days * 24 * 60;
$minutes += $difference->h * 60;
$minutes += $difference->i;
echo("The difference in minutes is:");
echo $minutes.' minutes';
?>

đầu ra

The difference in hours is:5
The difference in minutes is:300 minutes

Trong PHP, chúng ta cũng có thể sử dụng các công thức toán học khác nhau để tính chênh lệch thời gian tính bằng phút. Chương trình nhận chênh lệch múi giờ tính bằng phút như sau

Làm cách nào để tính thời lượng trong PHP?

Có hai cách để tính tổng thời gian từ mảng. Sử dụng hàm strtotime() . Hàm strtotime() được sử dụng để chuyển đổi chuỗi thành định dạng thời gian. Hàm này trả về thời gian tính bằng h. m. định dạng s. ví dụ 1. Ví dụ này đọc các giá trị từ mảng và chuyển đổi nó thành định dạng thời gian.

Làm cách nào để tính chênh lệch giữa thời gian trong PHP?

Sử dụng lớp DateTime để thực hiện bất kỳ phép tính ngày nào giờ đây PHP 5. 3 là tiêu chuẩn. Ví dụ. $start_date = Ngày giờ mới('2007-09-01 04. 10. 58'); . 25. 00')); . ' tổng số ngày

Làm cách nào để thêm hai khoảng thời gian trong PHP?

Đã liên kết .
Thêm hai đối tượng DateTime trong php
Nhận tổng thời gian và thời gian trung bình trong php
PHP thêm hai biến thời gian
Nhân thời gian trong PHP
Thêm khoảng thời gian DateTime với vòng lặp foreach
PHP thêm hai đối tượng DateInterval lại với nhau

Làm cách nào để tính chênh lệch thời gian tính bằng giờ trong PHP?

Hàm PHP để tính chênh lệch số giờ