2016-06-11 72 views
1

我有以下情況:DateTime類不支持1960年以前的年份?

$birth = new DateTime('1960'); 
echo $birth->diff(new DateTime())->format('%y'); 

輸出是56 - 這是確定的,但是當我設置參數1959年或更少的價值我得到的結果0。例如:

$birth = new DateTime('1959'); 
echo $birth->diff(new DateTime())->format('%y'); 

的輸出爲0。

測試環境是:

  • PHP 5.5.9-1ubuntu4.17
  • 的Apache/2.4.10(Ubuntu的)

謝謝!

+0

要想知道發生了什麼,寫'echo $ birth-> format('r');'創建 – splash58

回答

6

您需要爲新的DateTime()的輸入指定有效的DateTime。

我想,1960年本身只能被解釋爲一年,而1959年可能是一次。打印現在時間和19:59之間的時間差異爲0.

如果指定1959-01-01這樣的完整日期,那最好。

+0

後我看到了,它可以工作並完全迴應我的問題。非常感謝! – oneperfectsunrise