Hướng dẫn php time difference - chênh lệch múi giờ 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?

Hướng dẫn php time difference - chênh lệch múi giờ 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

24.8K52 Huy hiệu vàng155 Huy hiệu bạc227 Huy hiệu đồng52 gold badges155 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
'; echo $since_start->y.' years
'; echo $since_start->m.' months
'; echo $since_start->d.' days
'; echo $since_start->h.' hours
'; echo $since_start->i.' minutes
'; echo $since_start->s.' seconds
';

$ 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 http://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.7532 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.3902 Huy hiệu vàng17 Huy hiệu bạc38 Huy hiệu đồng2 gold badges17 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ù hiệu vàng 231K6262 gold badges216 silver badges294 bronze badges

3


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

TomtomTom

8.98229 Huy hiệu vàng129 Huy hiệu bạc226 Huy hiệu Đồng29 gold badges129 silver badges226 bronze badges

3


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.2501 Huy hiệu vàng19 Huy hiệu bạc24 Huy hiệu đồng1 gold badge19 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.0795 Huy hiệu vàng39 Huy hiệu bạc68 Huy hiệu Đồng5 gold badges39 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ủ.

format('%s Seconds %i Minutes %h Hours %d days %m Months %y Year    Ago')."
"; $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')."
"; 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

 ";
 echo dateDiff($mydate);
?>

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

Riggsfolly

Phim huy hiệu vàng 90,6K2020 gold badges101 silver badges144 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.7673 huy hiệu vàng42 Huy hiệu bạc48 Huy hiệu đồng3 gold badges42 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

Phim huy hiệu vàng 90,6K2020 gold badges101 silver badges144 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.7673 huy hiệu vàng42 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

Đã trả lời ngày 27 tháng 3 năm 2014 lúc 4:11besimple

Hriziyahriziya1 gold badge7 silver badges12 bronze badges

1

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

Đã trả lời ngày 28 tháng 1 năm 2015 lúc 7:05

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

VeerendraveerendraOct 30, 2019 at 14:54

2.5602 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';
6

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:

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

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

Besimplebesimple

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

4441 Huy hiệu vàng7 Huy hiệu bạc12 Huy hiệu đồng

Trừ thời gian và chia cho 60.Mar 24, 2019 at 2:52

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:Ali Han

Đã trả lời ngày 30 tháng 10 năm 2019 lúc 14:545 silver badges10 bronze badges

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

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.

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:Nov 1, 2020 at 11:42

Sử dụng chức năng:snr

$ date = ngày qua, $ diff = loại ví dụ: "phút", "ngày", "giây"2 gold badges67 silver badges90 bronze badges

Chúc may mắ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";
0

Đã trả lời ngày 24 tháng 3 năm 2019 lúc 2:52Feb 13, 2021 at 20:20

Ali Hanali Han

$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

4495 Huy hiệu bạc10 Huy hiệu đồngJan 16, 2018 at 4:57

Để biết các nhà xác định định dạng chi tiết, hãy truy cập liên kết.GYaN

Đã trả lời ngày 1 tháng 11 năm 2020 lúc 11:424 gold badges18 silver badges38 bronze badges

1

snrsnr

$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

Không phải là câu trả lời bạn đang tìm kiếm?Duyệt các câu hỏi khác được gắn thẻ Php Date Time phút hoặc đặt câu hỏi của riêng bạn.