我有一个 mktime 想要返回一个 datetime 对象。我想出的最好方法似乎太复杂了:
DateTime::createFromFormat("Y-m-d H:i:s",date("Y-m-d H:i:s",mktime(0, 0, 0, $data[$j]['month'], $data[$j]['day'],$data[$j]['year'])));
Run Code Online (Sandbox Code Playgroud)
有什么更好的方法吗?
该日期时间构造可以采用UNIX时间戳作为参数,所以只使用返回值从mktime直接在构造函数中,如果你使用前缀@:
$datetimeobject = new DateTime('@' . mktime(0, 0, 0, $data[$j]['month'], $data[$j]['day'],$data[$j]['year']));
Run Code Online (Sandbox Code Playgroud)
或者你可以mktime完全跳过这一步,因为DateTime它也可以解析日期字符串(但如果你进行微优化,这将更加消耗资源):
$datetimeobject = new DateTime($data[$j]['year'] .'-'. $data[$j]['month'] .'-'. $data[$j]['day']);
Run Code Online (Sandbox Code Playgroud)