2012-12-12 130 views
0

PHP中DateTime的範圍是什麼?DateTime的範圍是什麼?

即使構造似乎並不接受[0-9999]範圍,以下工作之外的Y-m-d格式的值:

添加10.000年:

// 12012-12-12 
echo (new DateTime())->add(new DateInterval('P10000Y'))->format('Y-m-d'); 

減去10.000年:

// -7988-12-12 
echo (new DateTime())->sub(new DateInterval('P10000Y'))->format('Y-m-d'); 

我無法在t中找到此信息他的文件。

+0

看到這個http://www.w3schools.com/php/php_ref_date.asp –

回答

3

http://php.net/manual/en/intro.datetime.php

的日期和時間信息在內部存儲爲一個64位的數,因此所有可以想象有用的日期(包括負年)的支持。範圍從過去的約2,920億年到未來的相同。

+0

看起來像我錯過了明顯的介紹。謝謝! – Benjamin

+0

但是,知道內部數字未被溢出保護可能仍然很有趣:設置爲間隔值的「P293000000000Y」會將您及時發回。 ) – raina77ow

+1

@ raina77ow您可能使用的是32位PHP,因此您的字符串可能會在DateInterval中溢出一個32位整數,而不是在DateTime中! – Benjamin