Hướng dẫn how to get time difference in php - làm thế nào để nhận được chênh lệch múi giờ trong php

Làm thế nào để tính toán chênh lệch phút giữa hai lần ngày trong PHP?

S.L. Barth

8.08971 Huy hiệu vàng 50 Huy hiệu bạc63 Huy hiệu Đồng71 gold badges50 silver badges63 bronze badges

Hỏi ngày 13 tháng 12 năm 2008 lúc 13:05Dec 13, 2008 at 13:05

Tom Smykowskitom SmykowskiTom Smykowski

25K52 Huy hiệu vàng156 Huy hiệu bạc227 Huy hiệu đồng52 gold badges156 silver badges227 bronze badges

Các câu trả lời trên là cho các phiên bản cũ của PHP. Sử dụng lớp DateTime để thực hiện bất kỳ tính toán ngày nào ngay bây giờ mà PHP 5.3 là tiêu chuẩn. Ví dụ.

$start_date = new DateTime('2007-09-01 04:10:58'); $since_start = $start_date->diff(new DateTime('2012-09-11 10:25:00')); echo $since_start->days.' days total<br>'; echo $since_start->y.' years<br>'; echo $since_start->m.' months<br>'; echo $since_start->d.' days<br>'; echo $since_start->h.' hours<br>'; echo $since_start->i.' minutes<br>'; echo $since_start->s.' seconds<br>';

$ kể từ_start là một đối tượng DateInterval. Lưu ý rằng thuộc tính ngày có sẵn (vì chúng tôi đã sử dụng phương thức Diff của lớp DateTime để tạo đối tượng DateInterVal).

Mã trên sẽ xuất ra:

1837 ngày tổng cộng5 năm0 tháng 10 ngày 6 giờ14 phút2 giây
5 years
0 months
10 days
6 hours
14 minutes
2 seconds

Để có được tổng số phút:

$minutes = $since_start->days * 24 * 60; $minutes += $since_start->h * 60; $minutes += $since_start->i; echo $minutes.' minutes';

Điều này sẽ xuất hiện:

2645654 phút

Đó là số phút thực tế đã trôi qua giữa hai ngày. Lớp DateTime sẽ đưa tiết kiệm ánh sáng ban ngày (tùy thuộc vào múi giờ) vào nơi "cách cũ" sẽ không. Đọc hướng dẫn về ngày và thời gian //www.php.net/manual/en/book.datetime.php

Đã trả lời ngày 12 tháng 9 năm 2012 lúc 7:11Sep 12, 2012 at 7:11

17

Đây là câu trả lời:

$to_time = strtotime("2008-12-13 10:42:00"); $from_time = strtotime("2008-12-13 10:21:00"); echo round(abs($to_time - $from_time) / 60,2). " minute";

Đã trả lời ngày 13 tháng 12 năm 2008 lúc 13:36Dec 13, 2008 at 13:36

user38526user38526user38526

3.7632 huy hiệu vàng14 Huy hiệu bạc2 Huy hiệu đồng2 gold badges14 silver badges2 bronze badges

4

Trừ quá khứ nhiều nhất một từ tương lai nhất một và chia cho 60.

Thời gian được thực hiện ở định dạng UNIX, vì vậy chúng chỉ là một con số lớn hiển thị số giây từ $to_time = strtotime("2008-12-13 10:42:00"); $from_time = strtotime("2008-12-13 10:21:00"); echo round(abs($to_time - $from_time) / 60,2). " minute"; 5

NOMAN

1.4102 Huy hiệu vàng18 Huy hiệu bạc38 Huy hiệu Đồng2 gold badges18 silver badges38 bronze badges

Đã trả lời ngày 13 tháng 12 năm 2008 lúc 13:23Dec 13, 2008 at 13:23

OlioliOli

Phù thủy vàng 231K6262 gold badges217 silver badges294 bronze badges

3

<?php $date1 = time(); sleep(2000); $date2 = time(); $mins = ($date2 - $date1) / 60; echo $mins; ?>

Đã trả lời ngày 13 tháng 12 năm 2008 lúc 15:49Dec 13, 2008 at 15:49

TomtomTom

8.29229 Huy hiệu vàng129 Huy hiệu bạc228 Huy hiệu Đồng29 gold badges129 silver badges228 bronze badges

3

<?php $start = strtotime('12:01:00'); $end = strtotime('13:16:00'); $mins = ($end - $start) / 60; echo $mins; ?>

Output:

75

Đã trả lời ngày 12 tháng 9 năm 2019 lúc 14:10Sep 12, 2019 at 14:10

0

Nó hoạt động trên các chương trình của tôi, tôi sử dụng $to_time = strtotime("2008-12-13 10:42:00"); $from_time = strtotime("2008-12-13 10:21:00"); echo round(abs($to_time - $from_time) / 60,2). " minute"; 6, bạn có thể kiểm tra hướng dẫn $to_time = strtotime("2008-12-13 10:42:00"); $from_time = strtotime("2008-12-13 10:21:00"); echo round(abs($to_time - $from_time) / 60,2). " minute"; 6 trên đây.

$start = date_create('2015-01-26 12:01:00'); $end = date_create('2015-01-26 13:15:00'); $diff=date_diff($end,$start); print_r($diff);

Bạn nhận được kết quả Bạn muốn gì.

Đã trả lời ngày 9 tháng 7 năm 2015 lúc 15:43Jul 9, 2015 at 15:43

Yussanyussanyussan

2.2401 Huy hiệu vàng20 Huy hiệu bạc24 Huy hiệu đồng1 gold badge20 silver badges24 bronze badges

2

Một cách khác với múi giờ.

$start_date = new DateTime("2013-12-24 06:00:00",new DateTimeZone('Pacific/Nauru')); $end_date = new DateTime("2013-12-24 06:45:00", new DateTimeZone('Pacific/Nauru')); $interval = $start_date->diff($end_date); $hours = $interval->format('%h'); $minutes = $interval->format('%i'); echo 'Diff. in minutes is: '.($hours * 60 + $minutes);

Đã trả lời ngày 24 tháng 12 năm 2013 lúc 13:16Dec 24, 2013 at 13:16

MuhammadmuhammadMuhammad

3.0895 Huy hiệu vàng40 Huy hiệu bạc68 Huy hiệu Đồng5 gold badges40 silver badges68 bronze badges

1

Tôi đã viết chức năng này cho một trang blog của tôi (sự khác biệt giữa ngày trước và ngày của máy chủ). Nó sẽ cung cấp cho bạn một đầu ra như thế này

"49 giây trước", "20 phút trước", "21 giờ trước", v.v.

Tôi đã sử dụng một chức năng sẽ giúp tôi có được sự khác biệt giữa ngày được thông qua và ngày của máy chủ.

<?php //Code written by purpledesign.in Jan 2014 function dateDiff($date) { $mydate= date("Y-m-d H:i:s"); $theDiff=""; //echo $mydate;//2014-06-06 21:35:55 $datetime1 = date_create($date); $datetime2 = date_create($mydate); $interval = date_diff($datetime1, $datetime2); //echo $interval->format('%s Seconds %i Minutes %h Hours %d days %m Months %y Year Ago')."<br>"; $min=$interval->format('%i'); $sec=$interval->format('%s'); $hour=$interval->format('%h'); $mon=$interval->format('%m'); $day=$interval->format('%d'); $year=$interval->format('%y'); if($interval->format('%i%h%d%m%y')=="00000") { //echo $interval->format('%i%h%d%m%y')."<br>"; return $sec." Seconds"; } else if($interval->format('%h%d%m%y')=="0000"){ return $min." Minutes"; } else if($interval->format('%d%m%y')=="000"){ return $hour." Hours"; } else if($interval->format('%m%y')=="00"){ return $day." Days"; } else if($interval->format('%y')=="0"){ return $mon." Months"; } else{ return $year." Years"; } } ?>

Lưu nó dưới dạng tệp Giả sử "date.php". Gọi chức năng từ một trang khác như thế này

<?php require('date.php'); $mydate='2014-11-14 21:35:55'; echo "The Difference between the server's date and $mydate is:<br> "; echo dateDiff($mydate); ?>

Tất nhiên bạn có thể sửa đổi hàm để vượt qua hai giá trị.

Riggsfolly

Huy hiệu vàng 91.5K2020 gold badges101 silver badges145 bronze badges

Đã trả lời ngày 7 tháng 6 năm 2014 lúc 19:21Jun 7, 2014 at 19:21

0

$to_time = strtotime("2008-12-13 10:42:00"); $from_time = strtotime("2008-12-13 10:21:00"); echo round(abs($to_time - $from_time) / 60,2). " minute"; 8 rất tuyệt, nhưng lúng túng cho loại tính toán này đòi hỏi một kết quả đơn vị duy nhất. Trừ thủ công các dấu thời gian hoạt động tốt hơn:

$minutes = $since_start->days * 24 * 60; $minutes += $since_start->h * 60; $minutes += $since_start->i; echo $minutes.' minutes'; 0

Đã trả lời ngày 25 tháng 5 năm 2021 lúc 15:26May 25, 2021 at 15:26

Şafak Gezerşafak GezerŞafak Gezer

3,8073 huy hiệu vàng43 Huy hiệu bạc48 Huy hiệu đồng3 gold badges43 silver badges48 bronze badges

Tôi nghĩ điều này sẽ giúp bạn

$minutes = $since_start->days * 24 * 60; $minutes += $since_start->h * 60; $minutes += $since_start->i; echo $minutes.' minutes'; 1

Đã trả lời ngày 31 tháng 10 năm 2014 lúc 5:26Oct 31, 2014 at 5:26

2

Đây là cách tôi hiển thị "xx lần trước" trong PHP> 5.2 .. Dưới đây là thông tin thêm về đối tượng DateTime

$minutes = $since_start->days * 24 * 60; $minutes += $since_start->h * 60; $minutes += $since_start->i; echo $minutes.' minutes'; 2

Riggsfolly

Huy hiệu vàng 91.5K2020 gold badges101 silver badges145 bronze badges

Đã trả lời ngày 7 tháng 6 năm 2014 lúc 19:21Mar 27, 2014 at 4:11

$to_time = strtotime("2008-12-13 10:42:00"); $from_time = strtotime("2008-12-13 10:21:00"); echo round(abs($to_time - $from_time) / 60,2). " minute"; 8 rất tuyệt, nhưng lúng túng cho loại tính toán này đòi hỏi một kết quả đơn vị duy nhất. Trừ thủ công các dấu thời gian hoạt động tốt hơn:hriziya

Đã trả lời ngày 25 tháng 5 năm 2021 lúc 15:261 gold badge20 silver badges40 bronze badges

$minutes = $since_start->days * 24 * 60; $minutes += $since_start->h * 60; $minutes += $since_start->i; echo $minutes.' minutes'; 3

Şafak Gezerşafak GezerJan 28, 2015 at 7:05

3,8073 huy hiệu vàng43 Huy hiệu bạc48 Huy hiệu đồngVeerendra

Tôi nghĩ điều này sẽ giúp bạn2 gold badges21 silver badges39 bronze badges

Đã trả lời ngày 31 tháng 10 năm 2014 lúc 5:26

$minutes = $since_start->days * 24 * 60; $minutes += $since_start->h * 60; $minutes += $since_start->i; echo $minutes.' minutes'; 4

Đây là cách tôi hiển thị "xx lần trước" trong PHP> 5.2 .. Dưới đây là thông tin thêm về đối tượng DateTimeJun 1, 2017 at 22:19

Riggsfollybesimple

Đã trả lời ngày 27 tháng 3 năm 2014 lúc 4:111 gold badge7 silver badges12 bronze badges

1

Hriziyahriziya

1.0561 Huy hiệu vàng20 Huy hiệu bạc40 Huy hiệu đồng

$minutes = $since_start->days * 24 * 60; $minutes += $since_start->h * 60; $minutes += $since_start->i; echo $minutes.' minutes'; 5

Đã trả lời ngày 28 tháng 1 năm 2015 lúc 7:05Oct 30, 2019 at 14:54

Veerendraveerendra

$minutes = $since_start->days * 24 * 60; $minutes += $since_start->h * 60; $minutes += $since_start->i; echo $minutes.' minutes'; 6

2.5352 Huy hiệu vàng21 Huy hiệu bạc39 Huy hiệu đồng

$minutes = $since_start->days * 24 * 60; $minutes += $since_start->h * 60; $minutes += $since_start->i; echo $minutes.' minutes'; 7

Một phiên bản phổ quát hơn, trả về kết quả trong ngày, giờ, phút hoặc giây bao gồm phân số/số thập phân:

Đã trả lời ngày 1 tháng 6 năm 2017 lúc 22:19

$minutes = $since_start->days * 24 * 60; $minutes += $since_start->h * 60; $minutes += $since_start->i; echo $minutes.' minutes'; 8

Besimplebesimple

4441 Huy hiệu vàng7 Huy hiệu bạc12 Huy hiệu đồngMar 24, 2019 at 2:52

Trừ thời gian và chia cho 60.Ali Han

Dưới đây là một ví dụ tính toán thời gian trôi qua từ $to_time = strtotime("2008-12-13 10:42:00"); $from_time = strtotime("2008-12-13 10:21:00"); echo round(abs($to_time - $from_time) / 60,2). " minute"; 9 trong vài phút:5 silver badges10 bronze badges

$minutes = $since_start->days * 24 * 60; $minutes += $since_start->h * 60; $minutes += $since_start->i; echo $minutes.' minutes'; 9

Đã trả lời ngày 30 tháng 10 năm 2019 lúc 14:54

Giải pháp của tôi để tìm sự khác biệt giữa hai ngày là ở đây. Với chức năng này, bạn có thể tìm thấy sự khác biệt như vài giây, phút, giờ, ngày, năm và tháng.Nov 1, 2020 at 11:42

Bạn có thể phát triển chức năng này. Tôi đã thử nghiệm và làm việc cho tôi. Đầu ra đối tượng DateInterVal là đây:

$to_time = strtotime("2008-12-13 10:42:00"); $from_time = strtotime("2008-12-13 10:21:00"); echo round(abs($to_time - $from_time) / 60,2). " minute"; 0

Sử dụng chức năng:Feb 13, 2021 at 20:20

$ date = ngày qua, $ diff = loại ví dụ: "phút", "ngày", "giây"

$to_time = strtotime("2008-12-13 10:42:00"); $from_time = strtotime("2008-12-13 10:21:00"); echo round(abs($to_time - $from_time) / 60,2). " minute"; 1

Chúc may mắn.Jan 16, 2018 at 4:57

Đã trả lời ngày 24 tháng 3 năm 2019 lúc 2:52GYaN

Ali Hanali Han4 gold badges19 silver badges38 bronze badges

1

4495 Huy hiệu bạc10 Huy hiệu đồng

$to_time = strtotime("2008-12-13 10:42:00"); $from_time = strtotime("2008-12-13 10:21:00"); echo round(abs($to_time - $from_time) / 60,2). " minute"; 2

Nó cung cấp đầu ra tính bằng giờ và phút cho 01 giờ 02 phút như 01:02

Đã trả lời ngày 5 tháng 6 năm 2019 lúc 9:45Jun 5, 2019 at 9:45

Đây là một lớp lót đơn giản:

$to_time = strtotime("2008-12-13 10:42:00"); $from_time = strtotime("2008-12-13 10:21:00"); echo round(abs($to_time - $from_time) / 60,2). " minute"; 3

Đã trả lời ngày 30 tháng 11 năm 2021 lúc 17:11Nov 30, 2021 at 17:11

Nimrodnimrodnimrod

5.48528 Huy hiệu vàng83 Huy hiệu bạc147 Huy hiệu đồng28 gold badges83 silver badges147 bronze badges

thử cái này

$to_time = strtotime("2008-12-13 10:42:00"); $from_time = strtotime("2008-12-13 10:21:00"); echo round(abs($to_time - $from_time) / 60,2). " minute"; 4

Đã trả lời ngày 8 tháng 5 năm 2021 lúc 8:43May 8, 2021 at 8:43

Làm thế nào tôi có thể có được sự khác biệt giữa hai lần trong PHP?

PHP $ start = strtotime ("12:00"); $ end = // chạy truy vấn để nhận giá trị datetime từ db $ elapsed = $ end - $ start; ngày lặp lại ("h: i", $ eXpressed); ?>$start = strtotime("12:00"); $end = // Run query to get datetime value from db $elapsed = $end - $start; echo date("H:i", $elapsed); ?>

Làm thế nào có thể tính toán chênh lệch ngày trong các ngày trong PHP?

Hàm date_diff () là một hàm sẵn có trong PHP được sử dụng để tính toán chênh lệch giữa hai ngày.Hàm này trả về một đối tượng DateInterval về thành công và trả về sai khi thất bại.date_diff() function is an inbuilt function in PHP that is used to calculate the difference between two dates. This function returns a DateInterval object on the success and returns FALSE on failure.

Làm thế nào tôi có thể tính tổng giờ 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.Các chức năng này trả về thời gian trong định dạng H: M: 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.Using strtotime() function: The strtotime() function is used to convert string into the time format. This functions returns the time in h:m:s format. Example 1: This example reads the values from the array and converts it into the time format.

Làm thế nào để bạn tìm thấy sự khác biệt giữa hai ngày?

Sử dụng hàm Datedif khi bạn muốn tính toán chênh lệch giữa hai ngày.Đầu tiên đặt ngày bắt đầu vào một ô và ngày kết thúc ở một ngày khác.Sau đó nhập một công thức như một trong những điều sau đây.CẢNH BÁO: Tôi f start_date lớn hơn end_date, kết quả sẽ là #num !. when you want to calculate the difference between two dates. First put a start date in a cell, and an end date in another. Then type a formula like one of the following. Warning: If the Start_date is greater than the End_date, the result will be #NUM!.

Chủ đề