2016-03-03 24 views
0

目前我使用這樣的片段:下面的代碼是否有一個更短的Datetime構造?

if (is_numeric($date)) { 
    $datetime = new DateTime('@'.$date); 
} else { 
    $datetime = new DateTime($date); 
} 

哪裏$date或者是unixtimestamp或某些日期字符串像2016/03/03

什麼是這種構造最好的故障安全等價物?

也許有些單線?一個包裝類?

我在詢問一些較短的構造,因爲我們在系統的很多地方都使用了上述構造。所以我想用更具可讀性和故障安全性的東西來代替它。

+0

您是否已嘗試使用功能日期? – Rhopercy

+1

'$ datetime = new DateTime((is_numeric($ date)?'@':'')。$ date);'? – Latheesan

+0

更短真的很重要嗎? –

回答

2

如果你想在你的項目中一些可重複使用的,在自己的類,例如把它包

class AcmeDateTime extends \DateTime 
{ 
    public function __construct($time = "now", DateTimeZone $timezone = null) 
    { 
     $time = is_numeric($time) ? "@" . $time : $time; 
     parent::__construct($time, $timezone); 
    } 
} 
0

你可以使用ternary operator在PHP的4線縮短一行是這樣的:

$datetime = new DateTime((is_numeric($date) ? '@' : '') . $date); 
相關問題