Hướng dẫn how to subtract two datetime in php? - cách trừ hai datetime trong php?

Tôi đã có hai ngày trong PHP

$date1 = 'May 3, 2012 10:38:22 GMT'

$date2 = '06 Apr 2012 07:22:21 GMT'

Sau đó, tôi trừ cả hai

$date2 - $date1

, và lấy

Result:6

Tại sao kết quả là 6 chứ không phải 27? ...? Làm thế nào tôi có thể trừ hai ngày và làm cho nó trả lại cho tôi một kết quả dựa trên sự khác biệt của tháng trong khi trừ đi các năm & ngày và thời gian?

Hướng dẫn how to subtract two datetime in php? - cách trừ hai datetime trong php?

Evan

12.1k6 Huy hiệu vàng37 Huy hiệu bạc51 Huy hiệu Đồng6 gold badges37 silver badges51 bronze badges

Khi được hỏi ngày 6 tháng 5 năm 2012 lúc 7:55May 6, 2012 at 7:55

0

Phần 1: Tại sao kết quả 6?

Các ngày chỉ đơn giản là chuỗi khi bạn lần đầu tiên trừ chúng. PHP cố gắng chuyển đổi chúng thành số nguyên. Nó thực hiện điều này bằng cách chuyển đổi cho đến khi không số đầu tiên. Vì vậy, ngày 2 trở thành 6 và ngày1 trở thành 0.

Phần 2: Làm thế nào để bạn làm cho nó hoạt động?

$datetime1 = strtotime('May 3, 2012 10:38:22 GMT');
$datetime2 = strtotime('06 Apr 2012 07:22:21 GMT');

$secs = $datetime2 - $datetime1;// == 
$days = $secs / 86400;

Chuyển đổi khi thích hợp.

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

5

Sử dụng DateTime và DateInterval,

$date1 = new DateTime("May 3, 2012 10:38:22 GMT");
$date2 = new DateTime("06 Apr 2012 07:22:21 GMT");
echo $date1->diff($date2)->format("%d");

Nietonfir

4.7276 Huy hiệu vàng30 Huy hiệu bạc43 Huy hiệu Đồng6 gold badges30 silver badges43 bronze badges

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

Sử dụng DateTime và DateInterval,Shiplu Mokaddim

Nietonfir15 gold badges136 silver badges185 bronze badges

4

4.7276 Huy hiệu vàng30 Huy hiệu bạc43 Huy hiệu Đồng

Shiplu Mokaddimshiplu Mokaddim

55,4K15 Huy hiệu vàng136 Huy hiệu bạc185 Huy hiệu Đồng

$date1=  new DateTime("May 3, 2012 10:38:22 GMT");
$date2= new DateTime("06 Apr 2012 07:22:21 GMT");
echo $date1->diff($date2)->("%d");

Có một cách để sử dụng mktime n làm cho ngày trong dấu thời gian và sau đó trừ đi và sau đó sử dụng hàm ngày để hiển thị theo cách bạn muốn ....

$datetime1 = strtotime('May 3, 2012 10:38:22 GMT');
$datetime2 = strtotime('06 Apr 2012 07:22:21 GMT');
$secs = $datetime2 - $datetime1;// == return sec in difference
$days = $secs / 86400;

Cách khác là định dạng cả hai ngày trong cùng một định dạng sau đó trừ đi ....May 6, 2012 at 8:05

0

Cách thứ ba

cách raevan example:

$datetime1 = strtotime('May 3, 2012 10:38:22 GMT');
$datetime2 = strtotime('06 Apr 2012 07:22:21 GMT');

$secs = $datetime2 - $datetime1;// == 
$days = $secs / 86400;

Đã trả lời ngày 6 tháng 5 năm 2012 lúc 8:05

Hầu hết các giải pháp được trình bày dường như đang hoạt động, nhưng mọi người đều quên về một điều: thời gian.

$datetime1 = strtotime(date('Y-m-d', strtotime('May 3, 2012 10:38:22 GMT')));
$datetime2 = strtotime(date('Y-m-d', strtotime('06 Apr 2012 07:22:21 GMT')));

$secs = $datetime2 - $datetime1;// == 
$days = $secs / 86400;

Lấy ví dụ Evan:May 9, 2014 at 8:53

Hướng dẫn how to subtract two datetime in php? - cách trừ hai datetime trong php?

ex3vex3vex3v

Khi bạn không cắt giảm một phần thời gian, những gì có thể dẫn đến milscalcations. Ví dụ: khoảng thời gian giữa

$date2 - $date1
2 (y-m-d) và
$date2 - $date1
3 sẽ là 0, xxx, không phải 1. Bạn nên cắt một phần thời gian của mỗi ngày.4 gold badges31 silver badges55 bronze badges

$todate= strtotime('May 3, 2012 10:38:22 GMT');
$fromdate= strtotime('06 Apr 2012 07:22:21 GMT');
$calculate_seconds = $todate- $fromdate; // Number of seconds between the two dates
$days = floor($calculate_seconds / (24 * 60 * 60 )); // convert to days
echo($days);

Nên nó phải là:

Đã trả lời ngày 9 tháng 5 năm 2014 lúc 8:53

3,4684 Huy hiệu vàng31 Huy hiệu bạc55 Huy hiệu ĐồngMay 27, 2013 at 10:42

Hướng dẫn how to subtract two datetime in php? - cách trừ hai datetime trong php?

Mã này sẽ tìm thấy sự khác biệt ngày giữa hai ngày ..Romancha KC

Ở đây sản lượng là 271 gold badge13 silver badges12 bronze badges

$date2 - $date1
0

Đã trả lời ngày 27 tháng 5 năm 2013 lúc 10:42Oct 22, 2016 at 6:18

1

Romancha Kcromancha KC

1.4771 Huy hiệu vàng13 Huy hiệu bạc12 Huy hiệu đồng

Đã trả lời ngày 22 tháng 10 năm 2016 lúc 6:18

$date2 - $date1
1

Nếu bạn muốn sử dụng phương thức Diff (nó trả về một đối tượng DateInterVal), cách chính xác là định dạng với %a. Ý tôi là:

Nếu bạn kiểm tra http://php.net/manual/en/dateinterval.format.phpDec 30, 2016 at 11:20

Hướng dẫn how to subtract two datetime in php? - cách trừ hai datetime trong php?

2

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

$ date1 = "2007-03-24";$ date2 = "2009-06-26";$ diff = abs (strtotime ($ date2) - strtotime ($ date1));$ năm = sàn ($ diff / (365*60*60*24));$ tháng = sàn (($ diff - $ năm*365*60*60*24) / (30*60*60*24));$ days = FLOOR (($ diff - $ năm*365*60*60*24 - $ tháng*30*60*60*24)/ (60*60*24));printf (" %d năm, %d tháng, %d ...

Làm thế nào tôi có thể tính giờ giữa hai ngày trong PHP?

$ hourDiff = vòng ((strtotime ($ time1) - strtotime ($ time2))/3600, 1);

Những cách để tính toán dấu thời gian trong PHP là gì?

Những cách để tính toán dấu thời gian trong PHP là gì ?..
Sử dụng hàm strtotime () ..
Sử dụng hàm strptime () ..
Sử dụng hàm getTimestamp () ..
Sử dụng hàm định dạng () ..

Điều nào sau đây được sử dụng để có tổng số khác biệt trong giây?

abs (x - y) / 1000;Ở đây, chúng tôi tìm thấy số giây giữa hai ngày - x và y.Chúng tôi có sự khác biệt tuyệt đối giữa hai ngày này bằng cách sử dụng toán học.phương pháp abs ().; Here, we find the number of seconds between two dates – x and y. We take the absolute difference between these two dates using the Math. abs() method.