In DateTime önceki aya alamayan bu (oldukça büyük) hata PHP-mi?

0 Cevap php

Bana datetime üniteleri verilen yukarı / aşağı çekilsin PHP işlevleri oluşturmak gerekir. Özellikle, geçerli bir sonraki / önceki aya hareket edebilmek gerekir.

Ben DateTime kullanarak bunu düşündüm :: / sub (P1M) ekleyin. : Aslında yerine ay değerini azaltma geri 30 gün saymaya çalışıyor gibi görünüyor - bir önceki aya almaya çalışırken tarih değeri = 31 Ancak, bu işler karışıyor!

$prevMonth = new DateTime('2010-12-31'); 

Ay azaltma için deneyin:

$prevMonth->sub(new DateInterval('P1M')); // = '2010-12-01'
$prevMonth->add(DateInterval::createFromDateString('-1 month')); // = '2010-12-01'
$prevMonth->sub(DateInterval::createFromDateString('+1 month')); // = '2010-12-01'
$prevMonth->add(DateInterval::createFromDateString('previous month')); // = '2010-12-01'

This certainly seems like the wrong behavior. Anyone have any insight? Thanks-

NOTE: PHP version 5.3.3

0 Cevap