$now = time();
和
$now = new DateTime();
$now->getTimestamp();
考虑到32位INT限制(也就是2038年的bug),在32位系统中使用getTimestamp()是否安全?
编辑:
有关此问题的更多信息,请查看此链接:什么是Unix时间戳,为什么使用它?
你试过了吗?你做了哪些工作来证实你的问题?
简单:
$datetime = new DateTime('5000-01-01');
var_dump($datetime->format('d.m.Y'));
var_dump($datetime->getTimestamp());
输出:string(10) "01.01.5000"
bool(false)
所以:不,你不是save
在使用时间戳从DateTime。
无论如何:问题可能是一个很好的参考,但可以很容易地通过测试发现。
关于DateTime的含义不是获取Unix时间戳。它是关于避免Unix时间戳的。从您自己的评论链接中查看答案:什么是Unix时间戳,为什么要使用它?
由于DateTime::getTimestamp()
返回的Unix时间戳在32位系统上存在Year-2038问题,因此当Year-2038问题适用时,它将在32位系统上返回false(但在64位系统上仍然有效)。
所以在32位系统上使用它是不安全的。