Hướng dẫn how to subtract date in php? - làm thế nào để trừ ngày 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 date in php? - làm thế nào để trừ ngày trong php?

Evan

Huy hiệu vàng 12k635 Huy hiệu bạc 50 Huy hiệu Đồng6 gold badges35 silver badges50 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;// == <seconds between the two times>
$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.7176 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 badges184 bronze badges

4

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

Shiplu Mokaddimshiplu Mokaddim

55.3K15 Huy hiệu vàng136 Huy hiệu bạc184 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;// == <seconds between the two times>
$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;// == <seconds between the two times>
$days = $secs / 86400;

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

Hướng dẫn how to subtract date in php? - làm thế nào để trừ ngày 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 date in php? - làm thế nào để trừ ngày 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 date in php? - làm thế nào để trừ ngày trong php?

2

Làm thế nào để bạn trừ trong PHP?

Có ba phương pháp để trừ hai số: trừ trong mã đơn giản trong PHP. Phép trừ ở dạng trong PHP. Phép trừ mà không sử dụng toán tử số học (+) ...
Đã trả lời ngày 30 tháng 12 năm 2016 lúc 11:20
$x=30;.
$y=15;.
$z=$x-$y;.
Echo "Sự khác biệt:", $ z ;.

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ể nhận được 15 ngày qua trong PHP?

Nếu ngày của bạn, giả sử, mảng của năm, tháng và ngày, thì bạn có thể mktime (0, 0, 0, $ tháng, $ ngày + 15, $ năm) hoặc mktime (0, 0, 0, $ tháng + 1, $ Ngày, $ năm).....
Nếu ngày của bạn là dấu thời gian, thì bạn chỉ cần thêm, như, 15*giây_in_a_day, sau đó xuất ra đó với ngày (/*bất kỳ định dạng nào*/, $ posteddate) ..

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);Chia cho 3600 vì có 3600 giây trong một giờ và sử dụng vòng () để tránh có nhiều vị trí thập phân. Dividing by 3600 because there are 3600 seconds in one hour and using round() to avoid having a lot of decimal places.