SORU
30 AĞUSTOS 2010, PAZARTESİ


::PHP DateTime ve ay çıkartılacak değiştir

Çok DateTime class ile çalışıyorum ve son ay eklenirken bir hata olduğunu düşündüğüm şeyi koştu. Biraz araştırma sonra, bir hata değildi, ama istediği gibi çalışmak yerine, görünür. Belgelere göre buldu here:

#2 eklerken veya Dikkat örnek ay çıkarma

<?php
$date = new DateTime('2000-12-31');

$date->modify(' 1 month');
echo $date->format('Y-m-d') . "\n";

$date->modify(' 1 month');
echo $date->format('Y-m-d') . "\n";
?>
The above example will output:
2001-01-31
2001-03-03

Herkes bu bir hata olarak kabul değil neden haklı?

Ayrıca herkes her şık çözümler sorunu çözmek ve tekrar yapmak zorunda mı yani 1 ay amaçlandığı gibi yerine beklendiği gibi çalışır mı?

CEVAP
30 AĞUSTOS 2010, PAZARTESİ


Neden bu bir hata değil:

Geçerli davranış doğru mu? Aşağıdaki içten olur:

  1. 1 month ay sayısı (aslında 1) Bir artar. Bu tarih 2010-02-31 yapar.

  2. İkinci ay (Şubat) sadece 1 Şubat'tan itibaren gün saymaya devam ederek 2010, PHP otomatik düzeltir bu 28 gün vardır. Daha sonra 3 Mart ulaştırıyor.

Ne istediğini elde etmek için:

İstediğini elde etmek için: el ile bir sonraki ay kontrol ediyorum. Sonra gün sayısını önümüzdeki ay ekleyin.

Kendini bu kod umarım. Sadece-için-ne veriyorum.

5.3 programlama:

Doğru davranış elde etmek için PHP kullanabilirsiniz göreli zaman first day of dörtlük tanıtan 5.3 yeni işlevsellik. Bu dörtlük next month, fifth month 8 months ile birlikte belirtilen ayın ilk günü gitmek için kullanılabilir. Ne yaptığını 1 month yerine, bu kod, bu gibi bir sonraki ayın ilk günü almak için kullanabilirsiniz:

<?php
$d = new DateTime( '2010-01-31' );
$d->modify( 'first day of next month' );
echo $d->format( 'F' ), "\n";
?>

Bu senaryo doğru February çıktı. Şunları PHP bu işler first day of next month dörtlük oldu:

  1. next month ay sayısı (aslında 1) Bir artar. Bu tarih 2010-02-31 yapar.

  2. first day of 1 tarih 2010-02-01 sonuçlanan gün sayısını ayarlar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Gee Cee

    Gee Cee

    1 AĞUSTOS 2009
  • ItZWaffleS420

    ItZWaffleS42

    9 EYLÜL 2011
  • NightShader1

    NightShader1

    25 Temmuz 2006