有什么区别:
$now = time();
和
$now = new DateTime();
$now->getTimestamp();
考虑到32位INT限制(也就是2038年的bug),在32位系统中使用getTimestamp()是否安全?
编辑:
有关此问题的详细信息,请查看以下链接:What is a Unix timestamp and why use it?
答案 0 :(得分:1)
你有什么尝试?你做了什么,以确认你的问题?
足够简单:
$datetime = new DateTime('5000-01-01');
var_dump($datetime->format('d.m.Y'));
var_dump($datetime->getTimestamp());
输出:
string(10) "01.01.5000"
bool(false)
所以:不,你在使用DateTime的TimeStamp时不是save
。
无论如何:问题可能是一个很好的参考,但可以通过测试很容易找到。
关于DateTime的Sence不是获取Unix时间戳。它是关于避免Unix时间戳。请参阅评论中您自己的链接中的答案:What is a Unix timestamp and why use it?
答案 1 :(得分:1)
由于DateTime::getTimestamp()
返回在32位系统上遇到2038年问题的Unix时间戳,因此当适用Year-2038问题时,它将在32位系统上返回false(但仍可在64位系统上运行)。
因此,在32位系统上使用是不安全的。