首页 > 解决方案 > 如何使用 php 创建零日期时间?

问题描述

我需要用 DateTime() 创建一个空日期。所以,全为零。时间应该以这种方式显示:0000:00:0:00:00

我试过的:

$date = new DateTime("2019-05-09 12:07");
$date->setTime(0, 0);
$date->setDate(0, 0, 0);
echo $date->format("Y:W:j:H:i");

那输出

-0001:49:30:00:00

代替0000:00:0:00:00

我能做些什么来实现零日期时间?

标签: phpdatedatetime

解决方案


更多的是对出了什么问题的解释,而不是如何实现你所追求的——即使它是可能的。

从日期的角度来看 - 0 对月份和日期都无效。在手册中它有例子

Example #2 超出范围的值被添加到它们的父值中

因此,如果您的天数大于一个月的天数,它将在下个月

在您的情况下,几乎相反,数字小于月初。所以0作为月份和日期,它将作为-1,所以如果你将它格式化为

echo $date->format("Y:m:d:H:i");

输出是

-0001:11:30:00:00

如您所见,日期和月份是 0-1(11 和 30),这已经溢出到带有 -1 的年份。


推荐阅读