2013-05-05 69 views
1

我正在使用PHP 5.3的服務器環境中工作。更好的是:date()或DateTime :: format()?

要創建一個表示當前時間的MySQL DATETIME字符串,我只是在我的代碼中使用了date("Y-m-d H:i:s")。類似new DateTime("now")->format("Y-m-d H:i:s")在這個版本中根本無法解析。不過,我在想,如果我可以依靠date()函數來做到這一點。

而在一些源文件中,我使用DateTime::createFromFormat('Y-m-d H:i:s', $mysqlDate)->format('d/m/Y H:i')爲巴西遊客獲取更友好的日期。

問題:這是意大利麪代碼嗎?我能做些什麼有一個更簡潔的代碼?

+2

使用什麼是您更容易編寫和維護 – 2013-05-05 22:50:35

+0

你需要用'd/M/Y'提防使用日期時間。如果你使用它(比如strtotime),PHP會將其解釋爲「m/d/Y」(美國),因此它可能會導致錯誤 – kero 2013-05-05 22:53:04

+0

DateTime對象 - 處理時區和夏令時,處理更寬範圍的日期,輕鬆與DateIntervals和DatePeriods集成 - 養成使用它們的習慣,並且它們讓很多事情變得更容易 – 2013-05-05 22:53:17

回答

0

日期時間是一個小更快速SEE HERE,並有日光時區的支持,但是也可以日期()可以很好的爲一個快速的代碼,因爲它是更好的使用日期時間與面向對象的邏輯

$st = microtime(); 
echo date('m/d/Y H:i').' '.(microtime()-$st).'<br>'; 
$st = microtime(); 
$d = new Datetime(); 
echo $d->format('d/m/Y H:i').' '.(microtime()-$st); 

你也可以在程序風格

echo date_format(date_create($date),$format); 
+3

嗨,山姆,爲了讓你的答案大放異彩,可以考慮將鏈接的一些上下文帶入你答案的正文。如果鏈接中斷,您的答案仍然對未來的訪問者有同樣的問題。祝你好運! – jmort253 2013-05-05 23:04:02

+0

我的問題是'$ d'變量。我應該總是創建一個臨時變量來調用'format()'方法嗎? – 2013-05-05 23:15:02

+1

@tassoevan你可以使用程序風格,如date_format(date_create($ date),$ format) – Sam 2013-05-05 23:26:07

相關問題