目前我正在使用这样的片段:
if (is_numeric($date)) {
$datetime = new DateTime('@'.$date);
} else {
$datetime = new DateTime($date);
}
其中$date
是unixtimestamp
或某个日期字符串,如2016/03/03
。
此构造的最佳故障保护等效物是什么?
也许有些单行?包装类?
我正在询问一些较短的构造,因为我们在系统的许多地方使用了上述构造。所以我想用更可读和更安全的东西来替换它。
答案 0 :(得分:2)
如果您想在项目中重复使用某些内容,请将其包装在您自己的类中,例如
class AcmeDateTime extends \DateTime
{
public function __construct($time = "now", DateTimeZone $timezone = null)
{
$time = is_numeric($time) ? "@" . $time : $time;
parent::__construct($time, $timezone);
}
}
答案 1 :(得分:0)
您可以在php中使用ternary operator将4
行缩短为一行,如下所示:
$datetime = new DateTime((is_numeric($date) ? '@' : '') . $date);