php DateTime,日期没有小时

Ser*_*nko 8 php datetime

new \DateTime();
/*
DateTime Object
(
    [date] => 2016-04-20 04:45:24.000000
    [timezone_type] => 3
    [timezone] => UTC
)
*/  
Run Code Online (Sandbox Code Playgroud)

如何调整小时数以获取我的DateTime对象:

/*
DateTime Object
(
    [date] => 2016-04-20 00:00:00.000000
    [timezone_type] => 3
    [timezone] => UTC
)
*/
Run Code Online (Sandbox Code Playgroud)

我知道的唯一方法是:

$date = new \DateTime();
$date->format('Y-m-d');
$date = new \DateTime($date->format('Y-m-d'));
Run Code Online (Sandbox Code Playgroud)

但我不喜欢这个解决方案.

spl*_*h58 30

为构造函数设置参数

$d = new \DateTime("midnight");
Run Code Online (Sandbox Code Playgroud)

UPD:如果一个对象已经随时存在

$d->settime(0,0);
Run Code Online (Sandbox Code Playgroud)

结果

DateTime Object
(
    [date] => 2016-04-20 00:00:00.000000
    [timezone_type] => 3
    [timezone] => UTC
)
Run Code Online (Sandbox Code Playgroud)


Clá*_*lva 12

对于那些喜欢以最短的方式做事的人来说,这里有一些简单的方法,可以获取当前日期或将字符串日期解析为 DateTime 对象,同时将小时、分钟和秒设置为 0。

对于今天的日期:

$dateObj = new DateTime ("today");
Run Code Online (Sandbox Code Playgroud)

对于特定日期:

$dateObj = new DateTime ("2019-02-12"); //time part will be 0
Run Code Online (Sandbox Code Playgroud)

用于解析特定日期格式:

$dateObj = DateTime::createFromFormat ('!Y-m-d', '2019-02-12'); //notice the !
Run Code Online (Sandbox Code Playgroud)