tôi muốn trừ hai ngày tháng trong phpLàm thế nào để Trừ hai ngày tháng trong php
ví dụ:
$date1 = 08/16/2013;
$date2 = 08/23/2013;
$answer = date2 - date1;
các $ câu trả lời nên là 7, Làm thế nào tôi sẽ làm điều đó? cảm ơn bạn rất nhiều
tôi muốn trừ hai ngày tháng trong phpLàm thế nào để Trừ hai ngày tháng trong php
ví dụ:
$date1 = 08/16/2013;
$date2 = 08/23/2013;
$answer = date2 - date1;
các $ câu trả lời nên là 7, Làm thế nào tôi sẽ làm điều đó? cảm ơn bạn rất nhiều
Bắt đầu sử dụng DateTime lớp cho ngày/giờ thao tác:
$date1 = new DateTime('08/16/2013');
$date2 = new DateTime('08/23/2013');
$diff = $date1->diff($date2);
print_r($diff); // or $diff->days
Output:
DateInterval Object
(
[y] => 0
[m] => 0
[d] => 7
[h] => 0
[i] => 0
[s] => 0
[invert] => 0
[days] => 7
)
Đọc thêm cho DateTime:diff().
Xin lưu ý rằng nhiều strtotime() ví dụ là không chính xác trong tính toán chênh lệch ngày/giờ. Ví dụ đơn giản nhất là sự khác biệt giữa 2013-03-31 21:00
và 2013-03-30 21:00
. Mà cho mắt thường là chính xác 1 ngày khác biệt, nhưng nếu bạn trừ 2 ngày này, bạn sẽ nhận được 82800
giây là 0.95833333333333
ngày. Điều này là do thời gian thay đổi từ mùa đông đến mùa hè. DateTime xử lý các năm nhuận và múi giờ đúng cách.
làm thế nào tôi sẽ nhận được giá trị? $ diff ['m']? –
Giống như tôi đã đăng trong câu trả lời, nếu bạn muốn ngày khác biệt chỉ nhận được nó như '$ diff-> days'. –
cảm ơn bạn! nó thực sự là một sự giúp đỡ lớn –
$date1 = '08/16/2013';
$date2 = '08/23/2013';
$days = (strtotime($date2) - strtotime($date1))/(60 * 60 * 24);
print $days;
lý do tại sao bạn chia chênh lệch thành (60 * 60 * 24)? và bạn lấy nó ở đâu? –
Sự khác biệt bao nhiêu ngày là từ '2013-03-31 21: 00' đến' 2013-03-30 21: 00' với ví dụ này? –
Đó là câu trả lời. – Yasitha
Bạn có thể nhận được với strtotime
và trừ ngày
$diff = abs(strtotime('08/16/2013') - strtotime('08/23/2013'));
echo $min = floor($diff/(60*60*24)); // 7
lý do tại sao bạn chia chênh lệch thành (60 * 60 * 24)? và bạn lấy nó ở đâu? –
'60 * 60 * 24' là ngày thứ hai. 'diff' kết quả là' 604800' về betweeen hai ngày giây. Bạn phải chia cho ngày. Đầu tiên '60' là min, second' 60' giờ và cuối cùng là '24' trong ngày. Vì vậy, '60 * 60 * 24 = 86400' có nghĩa là một (1) ngày. – Bora
Có bao nhiêu ngày khác biệt từ '2013-03-31 21: 00' đến' 2013-03-30 21: 00' với ví dụ này? –
Hãy thử điều này -
<?php
$date1 = strtotime('08/16/2013');
$date2 = strtotime('08/23/2013');
echo $hourDiff=round(abs($date2 - $date1)/(60*60*24),0);
?>
'$ datetime1 = new DateTime ($ date1); \t \t $ datetime2 = new DateTime ($ date2); \t \t $ days = round (($ datetime1-> format ("U") - $ datetime2-> format ("U"))/86400); 'Nó sẽ trả về số nguyên của ngày. –