PHP strtotime (YYYY-mm son gün) bir ay kapalı hatası

3 Cevap php

PHP 5.2.12 aşağıdaki komutu çalışıyorum:

print (date('Y-m-d', strtotime('2009-12 last day')));

İlişkin php.net manual:

date('m/d/y', strtotime('2009-03 last day')); # 03/31/09

Mart 2009 son günü (2009/03/31) göstermek gerekir!

Mine önceki ayın son gününü döndürür? neden? :

2009-11-30

3 Cevap

Deftere kodu açıklanan şekilde başarısız; Bu PHP kılavuzu sayfalarında açıklama (SilentGhost tarafından belirtildiği gibi sadece bir kullanıcı yorumdur) gibi görünüyor olmayan doğrulanmış kodudur.

Eğer belirli bir ayın son günü gerekiyorsa, bu deneyin:

date('Y-m-d', strtotime("2009-12 next month - 1 hour"));

Eğer DateTime sınıfını kullanarak PHP 5.3 denemek kullanıyorsanız:

<?php
    $date = new DateTime("2009-03-01");
    $date->modify("last day of previous month");
    echo $date->format("m/d/y");
?>

$date->modify("last day of previous month"); 5.2 çalışmaz gibi 5.3 olmalı. * Veya daha eski.

Ben sadece yanlış göreli biçimini kullanarak düşünüyorum, bu benim için çalışıyor:

echo date('m/d/y', strtotime('last day of 2009-12'));

Dan the docs:

'last day' ' of'? - Geçerli ayın son günü gün ayarlar. Bu ifade en iyi onu izleyen birlikte bir ay ismi ile birlikte kullanılır. - "last day of next month"