我從MySQL檢索datetime數據檢索的數據從一個單行。PHP日期時間不能正常工作
2011-04-11 19:31:30
我想重新設置日期時間在d-m-Y H:i:s
對我使用date_format()
下面的代碼工作得很好。
$date = new DateTime($users['registerDate']);
echo $date->format('d-m-Y H:i:s');
不過,我不想去面向對象的方式只是爲了重新格式化,因爲我將使用foreach循環內的代碼,這意味着我將不得不一次又一次地初始化DateTime類。
我試着用下面這段代碼做程序的方式。
$date = $users['registerDate'];
echo date_format($date, 'Y-m-d H:i:s');
上面的代碼不適合我,並給出以下錯誤。
警告:DATE_FORMAT()預計參數1到上線在給定/Applications/MAMP/htdocs/kokaris/administrator/resources/library/models/users/users.php日期時間,串21
什麼可能是錯誤的?
給出的解決方案適用於程序的方式完美的罰款。
echo date('m-d-Y',strtotime($users['registerDate']));
不過,我想知道,這將是最好的可行的解決方案上面的程序方式或面向對象的方式。
$date = new DateTime($users['registerDate']);
echo $date->format('d-m-Y H:i:s');
考慮到我將使用foreach循環內的代碼,它可能會循環超過一百次。
的第一個參數'DATE_FORMAT()'必須DateTime'的'一個實例。你正在向它傳遞一個字符串 – Phil 2011-04-13 05:39:40
在PHP中,實例化一個對象並不是一個非常昂貴的操作,至少與你一直都在做的其他事情沒有什麼不同。純粹出於性能考慮而選擇面向對象的程序代碼在諸如PHP之類的語言中很愚蠢。 – tdammers 2011-04-13 05:58:58
@tdammers你確定在給定的條件下使用OOP方式可以嗎?例如,如果我必須檢索100條記錄,考慮到它將初始化類100次,對於這樣的條件,僅僅使用過程函數()是不好的? – 2011-04-13 06:06:41