Ben bir datetime nesnesi 1 gün çıkarma zaman, bir gün çıkarır gerekiyordu gibi, öyle. ama ben 2 datetime karşılaştırmak için fark () kullanırsanız daha sonra tekrar gün çıkarır nesneleri. Aşağıdaki kod örneği görebilirsiniz:
$currTime = new DateTime();
$lastPurge = new DateTime("14:33");
$lastPurge->sub(new DateInterval("P1D"));
echo $lastPurge->format("d/m/Y H:i:s\n\n");
$diff = $currTime->diff($lastPurge);
echo $lastPurge->format("d/m/Y H:i:s\n\n");
Bu kod çıktısı:
10/11/2010 14:33:00
09.11.2010 14:33:00
Gördüğünüz gibi, beklendiği gibi alt () çağrıldıktan sonra bu, 1 gün çıkarılır oldu. Ama sonra diff kullandıktan sonra () başka bir gün çıkarır. Neden başka bir gün () farkı hesaplamak için diff kullandıktan sonra çıkartılır? Bunu yapmak gerekiyordu?