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

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')."<br/>";

Đ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."<br/>";
echo $timediff->i."<br/>";
echo $timediff->h."<br/>";
echo $timediff->d."<br/>";
echo $timediff->m."<br/>";
echo $timediff->y."<br/>";

 

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')."<br/>";

Đầ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

1. Sử dụng lớp PHP DateTime để tính toán sự khác biệt giữa hai ngày-thời gian. Phương thức diff() của lớp DateTime tạo đối tượng DateInterval tính toán sự khác biệt giữa hai đối tượng ngày/giờ theo thời gian (tổng số ngày, năm, tháng, ngày, giờ, phút, giây, v.v. )

$datetime_1 = '2022-04-10 11:15:30';
$datetime_2 = '2022-04-12 13:30:45';

$start_datetime = new DateTime($datetime_1);
$diff = $start_datetime->diff(new DateTime($datetime_2));

echo $diff->days.' Days total
';
echo $diff->y.' Years
';
echo $diff->m.' Months
';
echo $diff->d.' Days
';
echo $diff->h.' Hours
';
echo $diff->i.' Minutes
';
echo $diff->s.' Seconds
';

Tính toán và nhận chênh lệch thời gian tính bằng phút

$total_minutes = ($diff->days * 24 * 60);
$total_minutes += ($diff->h * 60);
$total_minutes += $diff->i;

echo 'Diff in Minutes: '.$total_minutes;

2. Bạn có thể sử dụng hàm strtotime() để lấy chênh lệch thời gian giữa hai ngày (DateTimes) tính bằng phút bằng PHP

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

Cải thiện bài viết

Lưu bài viết

Thích bài viết

  • Cập nhật lần cuối. 19 tháng 1 năm 2022

  • Đọc
  • Bàn luận
  • khóa học
  • Luyện tập
  • Băng hình
  • Cải thiện bài viết

    Lưu bài viết

    Cho một mảng chứa thời gian tính bằng giờ. tối thiểu. định dạng giây. Nhiệm vụ là tính tổng thời gian. Nếu tổng thời gian lớn hơn 24 giờ thì tổng thời gian sẽ không bắt đầu bằng 0. Nó sẽ hiển thị tổng thời gian. Có hai cách để tính tổng thời gian từ mảng.
     

    1. Sử dụng hàm strtotime()
    2. Sử dụng chức năng phát nổ()

    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.
    Cú pháp 
     

    strtotime( string )

    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.
     

    php




    1 year 11 month 30 days 17 hour 20 minute 3 second
    25

     

    1 year 11 month 30 days 17 hour 20 minute 3 second
    26

    1 year 11 month 30 days 17 hour 20 minute 3 second
    27
    1 year 11 month 30 days 17 hour 20 minute 3 second
    28

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    1 year 11 month 30 days 17 hour 20 minute 3 second
    30
    23:17:39
    0
    23:17:39
    1
    23:17:39
    0
    23:17:39
    3
    23:17:39
    0

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    23:17:39
    6
    23:17:39
    0
    23:17:39
    8
    23:17:39
    0
    1 year 11 month 30 days 17 hour 20 minute 3 second
    70
    23:17:39
    0

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    1 year 11 month 30 days 17 hour 20 minute 3 second
    73

    1 year 11 month 30 days 17 hour 20 minute 3 second
    74

     

    1 year 11 month 30 days 17 hour 20 minute 3 second
    75
    1 year 11 month 30 days 17 hour 20 minute 3 second
    76
    1 year 11 month 30 days 17 hour 20 minute 3 second
    77
    1 year 11 month 30 days 17 hour 20 minute 3 second
    78
    1 year 11 month 30 days 17 hour 20 minute 3 second
    79
    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    60

     

    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    61
    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    62

     

    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    63
    1 year 11 month 30 days 17 hour 20 minute 3 second
    78
    1 year 11 month 30 days 17 hour 20 minute 3 second
    27
    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    66
    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    67
    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    68

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    1 year 11 month 30 days 17 hour 20 minute 3 second
    251

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    1 year 11 month 30 days 17 hour 20 minute 3 second
    253
    1 year 11 month 30 days 17 hour 20 minute 3 second
    76_______177
    1 year 11 month 30 days 17 hour 20 minute 3 second
    78
    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    67____1258
    1 year 11 month 30 days 17 hour 20 minute 3 second
    75
    1 year 11 month 30 days 17 hour 20 minute 3 second
    260

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    1 year 11 month 30 days 17 hour 20 minute 3 second
    263

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    61
    1 year 11 month 30 days 17 hour 20 minute 3 second
    76
    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    61
    1 year 11 month 30 days 17 hour 20 minute 3 second
    268
    1 year 11 month 30 days 17 hour 20 minute 3 second
    253
    1 year 11 month 30 days 17 hour 20 minute 3 second
    260

    1 year 11 month 30 days 17 hour 20 minute 3 second
    271

     

    1 year 11 month 30 days 17 hour 20 minute 3 second
    272

    1 year 11 month 30 days 17 hour 20 minute 3 second
    273

     

    1 year 11 month 30 days 17 hour 20 minute 3 second
    274

    1 year 11 month 30 days 17 hour 20 minute 3 second
    275

    1 year 11 month 30 days 17 hour 20 minute 3 second
    276
    1 year 11 month 30 days 17 hour 20 minute 3 second
    76____1278
    1 year 11 month 30 days 17 hour 20 minute 3 second
    78
    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    61
    1 year 11 month 30 days 17 hour 20 minute 3 second
    281

     

    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    61
    1 year 11 month 30 days 17 hour 20 minute 3 second
    76______261
    1 year 11 month 30 days 17 hour 20 minute 3 second
    285
    1 year 11 month 30 days 17 hour 20 minute 3 second
    276
    1 year 11 month 30 days 17 hour 20 minute 3 second
    287

     

    1 year 11 month 30 days 17 hour 20 minute 3 second
    288

    1 year 11 month 30 days 17 hour 20 minute 3 second
    289

    1 year 11 month 30 days 17 hour 20 minute 3 second
    290
    1 year 11 month 30 days 17 hour 20 minute 3 second
    76____1278
    1 year 11 month 30 days 17 hour 20 minute 3 second
    78
    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    61
    1 year 11 month 30 days 17 hour 20 minute 3 second
    295

     

    1 year 11 month 30 days 17 hour 20 minute 3 second
    296

    1 year 11 month 30 days 17 hour 20 minute 3 second
    297
    1 year 11 month 30 days 17 hour 20 minute 3 second
    76____261
    1 year 11 month 30 days 17 hour 20 minute 3 second
    285
    1 year 11 month 30 days 17 hour 20 minute 3 second
    290
    1 year 11 month 30 days 17 hour 20 minute 3 second
    302

     

    1 year 11 month 30 days 17 hour 20 minute 3 second
    303

    1 year 11 month 30 days 17 hour 20 minute 3 second
    304
    1 year 11 month 30 days 17 hour 20 minute 3 second
    305
    1 year 11 month 30 days 17 hour 20 minute 3 second
    276
    1 year 11 month 30 days 17 hour 20 minute 3 second
    307
    1 year 11 month 30 days 17 hour 20 minute 3 second
    290
    1 year 11 month 30 days 17 hour 20 minute 3 second
    307
    1 year 11 month 30 days 17 hour 20 minute 3 second
    297
    23:17:39
    01

     

    23:17:39
    02

    đầu ra. ________số 8

     

    Sử dụng hàm phát nổ(). Hàm phát nổ () được sử dụng để ngắt một chuỗi thành một mảng.
    Cú pháp 
     

    1 year 11 month 30 days 17 hour 20 minute 3 second
    7

    Ví dụ 2. Ví dụ này đọc các giá trị từ một mảng và chuyển đổi nó thành định dạng thời gian.
     

    php




    1 year 11 month 30 days 17 hour 20 minute 3 second
    25

     

    23:17:39
    04

    23:17:39
    05
    1 year 11 month 30 days 17 hour 20 minute 3 second
    28

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    1 year 11 month 30 days 17 hour 20 minute 3 second
    30
    23:17:39
    0
    23:17:39
    1
    23:17:39
    0
    23:17:39
    3
    23:17:39
    0

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    23:17:39
    6
    23:17:39
    0
    23:17:39
    8
    23:17:39
    0
    23:17:39
    19
    23:17:39
    0

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    1 year 11 month 30 days 17 hour 20 minute 3 second
    73

    1 year 11 month 30 days 17 hour 20 minute 3 second
    74

     

    23:17:39
    24
    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    62

     

    23:17:39
    26

    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    63
    1 year 11 month 30 days 17 hour 20 minute 3 second
    78
    23:17:39
    05
    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    66
    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    67
    23:17:39
    32

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29____835

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    23:17:39
    37
    1 year 11 month 30 days 17 hour 20 minute 3 second
    76____839
    23:17:39
    40
    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    67
    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    60

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    23:17:39
    45

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    23:17:39
    47

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    23:17:39
    24____850
    23:17:39
    37
    23:17:39
    52

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    23:17:39
    55

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    23:17:39
    47

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    23:17:39
    24____850
    23:17:39
    37
    23:17:39
    62

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    23:17:39
    65

    1 year 11 month 30 days 17 hour 20 minute 3 second
    29
    23:17:39
    24____850
    23:17:39
    37
    23:17:39
    70

    _______871____1260

     

    23:17:39
    73

    23:17:39
    74
    23:17:39
    75
    23:17:39
    76
    23:17:39
    0

    23:17:39
    78
    1 year 11 month 30 days 17 hour 20 minute 3 second
    78
    23:17:39
    24
    23:17:39
    81

    23:17:39
    78
    1 year 11 month 30 days 17 hour 20 minute 3 second
    78
    23:17:39
    24
    23:17:39
    85

    ________ 878 ________ 824 ________ 888

     

    1 year 11 month 30 days 17 hour 20 minute 3 second
    304
    23:17:39
    74
    1 year 11 month 30 days 17 hour 20 minute 3 second
    260

     

    23:17:39
    02

    đầu ra.

    echo $timediff->s."<br/>";
    echo $timediff->i."<br/>";
    echo $timediff->h."<br/>";
    echo $timediff->d."<br/>";
    echo $timediff->m."<br/>";
    echo $timediff->y."<br/>";
    6

     


    Ghi chú cá nhân của tôi arrow_drop_up

    Tiết kiệm

    Vui lòng Đăng nhập để nhận xét.

    Làm cách nào để tính thời gian giờ và phút trong php?

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

    php function timeDiff($firstTime,$lastTime) { // chuyển đổi sang dấu thời gian unix $firstTime=strtotime($firstTime); . tiếng vang timeDiff("2002

    Cách tính giờ làm việc trong php?

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

    Làm cách nào để tính thời gian giữa hai lần trong php?

    php $time1 = strtotime('08. 00. 00'); . 30. 00'); . Đoạn mã trên sẽ làm tròn thành phút. Lưu câu trả lời này. Note: The code above will round to minutes. Save this answer.