2012-12-12 95 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