2016-10-01 53 views
0

這是我的困境。我試過參考http://php.net/manual/en/datetime.format.phpPHP回聲空白日期時間字段

但那不是幫助我或我沒有正確設置我的代碼。

這是我的代碼。

$query = "SELECT id,f_name, l_name, phone_1, phone_2, car_name, email, zipcode, ref_name, dateadded "; 
$query .= "FROM customers JOIN carriers ON customers.carrier = carriers.car_id "; 
$query .= "JOIN referrals ON customers.referral = referrals.ref_id";   

$select_customers = mysqli_query($connection, $query); 

while($row = mysqli_fetch_assoc($select_customers)) { 
$customer_id = $row['id'];  
$c_fname  = $row['f_name']; 
$c_lname  = $row['l_name']; 
$c_email  = $row['email']; 
$c_phone1 = $row['phone_1']; 
$c_phone2 = $row['phone_2']; 
$car_id  = $row['car_id'];  
$c_carrier = $row['car_name']; 
$c_zip  = $row['zipcode']; 
$ref_id  = $row['ref_id']; 
$c_ref  = $row['ref_name']; 
$c_added  = $row['dateadded']; 

echo "<tr>"; 
echo "<td>{$c_fname}</td>"; 
echo "<td>{$c_lname}</td>"; 
echo "<td>{$c_email}</td>"; 
echo "<td>{$c_phone1}</td>"; 
echo "<td>{$c_phone2}</td>"; 
echo "<td>{$c_carrier}</td>"; 
echo "<td>{$c_zip}</td>"; 
echo "<td>{$c_ref}</td>"; 
echo "<td>". date_format($c_added, 'd/m/y') ."</td>"; 
echo "<td><a class='btn btn-danger' href='customers.php?source=edit_customer&id={$customer_id}'>Edit</a></td>"; 
}  

它會回顯出一個空白字段。 'dateadded'的列被設置爲'2016-09-28 10:40:44'的日期時間。更正我的代碼表示讚賞。謝謝。

回答

0

date_format接受的第一個參數

一個DateTime對象由date_create()

$c_added返回絕對不是這樣的對象。我建議你使用普通的舊功能date

echo "<td>". date('d/m/y', strtotime($c_added)) ."</td>"; 
+0

或回聲 「​​」。 date_format(new DateTime($ c_added),'d/m/y')。「」; –

+0

@jakubwrona,你可以寫你自己的答案) –

+0

@u_mulder,謝謝你解決我的錯誤。這可以更改爲格式mm/dd/yyyy嗎? –

0

DATE_FORMAT函數格式化日期時間數據類型而$ c_added就是一個字符串。

0

RTM。 date_format不會將字符串作爲參數。

你應該用別的東西,像

date("d/m/Y", strtotime('2016-09-28 10:40:44'));

它返回 「28-09-2016」

1

有很多方法可以做到這一點,一個又一個以前的答案:

echo "<td>". date_format(new DateTime($c_added), 'd/m/y') ."</td>"; 
1

請嘗試更換:

echo "<td>". date_format($c_added, 'd/m/y') ."</td>"; 

在你的代碼:

echo '<td>' . gmdate('d/m/y', (int)$c_added['0']) . '</td>'; 

或者

echo '<td>' . date('d/m/y',strtotime($c_added)) . '</td>'; 

剛一說明:使用"<td>"較慢,使用'<td>'更快

+0

有用的信息。不知道差異。它有多快? –

+0

您可能想要做基準查看區別,請閱讀[這個問題/答案](http://stackoverflow.com/questions/8291366/how-to-benchmark-efficiency-of-php-script),它取決於在你做什麼以及你想怎麼做。http://www.phpbench.com有一些標準的測試結果,但是如果你想知道你的項目的確切信息,你應該自己對代碼進行基準測試 – jagb