PHP DateDiff ile ilgili bir sorunum var, her bir saat diliminin neden farklı sonuçlar döndürdüğünü anlamıyorum, örneğin bu durumda Prag, 0 ay, ve ABD 1 ay geri dönüyor.DateDiff her bir saat dilimi için farklı sonuç döndürüyor
Bu fark ve beklediğim gibi 1 ay (bunun yerine 1 ay eklediğimde 30 gün) nasıl iade ediyorum?
kod Avrupa/Prag:
date_default_timezone_set("Europe/Prague");
$from = new \DateTimeImmutable('2016-09-01');
$to = $from->add(new \DateInterval('P1M'));
var_dump($from);
var_dump($to);
var_dump($from->diff($to)->m);
var_dump($from->diff($to)->d);
sonuç Avrupa/Prag:
object(DateTimeImmutable)#1 (3) {
["date"]=>
string(26) "2016-09-01 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(13) "Europe/Prague"
}
object(DateTimeImmutable)#3 (3) {
["date"]=>
string(26) "2016-10-01 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(13) "Europe/Prague"
}
int(0)
int(30)
-
kod ABD/Pasifik:
date_default_timezone_set("US/Pacific");
$from = new \DateTimeImmutable('2016-09-01');
$to = $from->add(new \DateInterval('P1M'));
var_dump($from);
var_dump($to);
var_dump($from->diff($to)->m);
var_dump($from->diff($to)->d);
ABD neden/Pasifik :
object(DateTimeImmutable)#2 (3) {
["date"]=>
string(26) "2016-09-01 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(10) "US/Pacific"
}
object(DateTimeImmutable)#4 (3) {
["date"]=>
string(26) "2016-10-01 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(10) "US/Pacific"
}
int(1)
int(0)
Eğer 'var_dump'ing saat, dakika, saniye ve milisaniye de sakıncası var mı? – Mchl
Bu, PHP'nin kendisinde bir hata olabilir mi? –
@MichaelHirschler belki emin değilim, bu yüzden sorumu bu yüzden gönderdim – patie