我的理解是,php中的日期时间表示为特定日期之后的毫秒数(我认为1960年的某个时间?)。如何构建一个表示php中最早允许日期的日期时间?可能的语法示例如下:
$date = new DateTime(0);
但这不起作用。还有其他方法可以做到这一点吗?
感谢您的任何意见。
答案 0 :(得分:2)
你非常接近
$date = (new DateTime())->setTimestamp(0);
将于1970年1月1日发布
答案 1 :(得分:2)
我认为DateTime对象将接受的最小日期和最大日期如下(在PHP 7.4的64位计算机上,使用PHPUnit进行了演示)。这对于为DateTime和Carbon提供日期验证器上的默认最小值和最大值非常有用。此答案也发布在PHP手册页的DateTime :: __ construct()用户贡献注释中。
如果您想非常精确地进行修改,请修改以下代码以说明时间和时区。
// smallest date
$input = '-9999-01-01';
$dt = new \DateTime($input);
self::assertEquals($input, $dt->format('Y-m-d'));
$input = '-10000-12-31';
$dt = new \DateTime($input);
self::assertEquals('2000-12-31', $dt->format('Y-m-d'));
// largest date
$input = '9999-12-31';
$dt = new \DateTime($input);
self::assertEquals($input, $dt->format('Y-m-d'));
$input = '10000-01-01';
$dt = new \DateTime($input);
self::assertEquals('2000-01-01', $dt->format('Y-m-d'));
答案 2 :(得分:1)
echo date('d-m-Y', 0); // outputs: 01-01-1970
epoch 0
在1970年1月1日给出了unix时间戳01-01-1970
或00:00:00 UTC。