2013-10-01 198 views
0

如您所知,數據庫中的日期格式爲Y-m-d,我需要在d-m-Y中回顯日期。 這是迴音代碼:將日期格式從d-m-Y轉換爲Y-m-d

<td class="pk">From</td> 
      <td width="50%" class="pk_2"><input name="personal_ic_from" type="text" class="tcal" id="personal_ic_from" value="<?php 
echo date_create($personal_ic_from)->format('d-m-Y'); 
?>" readonly="readonly"/> 
      </td> 

我的問題是,用戶改變personal_ic_from日期後,我需要回從DMY轉換日期格式年月日(這是迄今爲止在數據庫中的標準格式)在更新查詢中。但是,我不能設法做..

這是我的更新查詢:

<?php 
$personal_ic_from = $_POST['personal_ic_from']; 
$personal_ic_to = $_POST['personal_ic_to']; 
$personal_ic_num = $_POST['personal_ic_num']; 
$personal_ic_old_num = $_POST['personal_ic_old_num']; 
$personal_ic_issuing_autho = $_POST['personal_ic_issuing_autho']; 
$personal_ic_issuing_num = $_POST['personal_ic_issuing_num']; 
$personal_ic_issuing_date = $_POST['personal_ic_issuing_date']; 
$personal_ic_date_expiry = $_POST['personal_ic_date_expiry']; 
$personal_ic_place_issue = $_POST['personal_ic_place_issue']; 
$personal_ic_country_issue = $_POST['personal_ic_country_issue']; 
$personal_ic_country = $_POST['personal_ic_country']; 


mysql_query("UPDATE personal_id_ic SET personal_ic_from = '".mysql_real_escape_string($_POST["personal_ic_from"])."', personal_ic_to = '".mysql_real_escape_string($_POST["personal_ic_to"])."', personal_ic_num = '".mysql_real_escape_string($_POST["personal_ic_num"])."', personal_ic_old_num = '".mysql_real_escape_string($_POST["personal_ic_old_num"])."', personal_ic_issuing_autho = '".mysql_real_escape_string($_POST["personal_ic_issuing_autho"])."', personal_ic_issuing_num = '".mysql_real_escape_string($_POST["personal_ic_issuing_num"])."', personal_ic_issuing_date = '".mysql_real_escape_string($_POST["personal_ic_issuing_date"])."', personal_ic_date_expiry = '".mysql_real_escape_string($_POST["personal_ic_date_expiry"])."', personal_ic_place_issue = '".mysql_real_escape_string($_POST["personal_ic_place_issue"])."', personal_ic_country_issue = '".mysql_real_escape_string($_POST["personal_ic_country_issue"])."', personal_ic_country = '".mysql_real_escape_string($_POST["personal_ic_country"])."' WHERE LAS_login_id = '".mysql_real_escape_string($_POST["LAS_login_id"])."'"); 

?> 

如何從d-M-Y格式轉換回Y-M-d因此數據庫可以保存新的日期? 我試圖更改查詢,爲personal_id_ic,但是當我使用此代碼數據庫保存隨機日期,而不是日期用戶選擇:

mysql_query("UPDATE personal_id_ic SET personal_ic_from = '".mysql_real_escape_string($_POST["personal_ic_from, %Y-%m-%d"])."' WHERE LAS_login_id = '".mysql_real_escape_string($_POST["LAS_login_id"])."'"); 
+3

http://php.net/date – Nicole

+0

同樣的問題,同一個用戶的http =://計算器。 com/a/19086488/67332 –

回答

2

它可以輕鬆地用這個簡單的短代碼實現...

$dmy = "20-12-2013"; 
list($day, $month, $year) = explode("-", $dmy); 
$ymd = "$year-$month-$day"; 
echo $ymd; 
+0

這個用於回顯權限? – afifi

+0

是的,這是...但是對於你的要求,它只是一個簡單的任務,將日期保存到變量中,然後在查詢中使用它... – yan

+0

好吧,我解決了我的問題。 thx的一些想法。 – afifi

0

您可以使用PHP的strtotime函數將日期轉換爲Unix時間戳。從那裏,您可以使用PHP的date函數以您想要的方式進行格式化。

在一個步驟:

$personal_ic_from = date('Y-m-d', strtotime($_POST['personal_ic_from'])); 

或將其分爲2個步驟:

// Convert the form value to Unix timestamp 
$unix_timestamp = strtotime($_POST['personal_ic_from']); 

// Format the date how you want 
$personal_ic_from = date('Y-m-d', $unix_timestamp); 
+0

我嘗試替換'$ personal_ic_from = $ _POST ['personal_ic_from'];' ''personal_ic_from = date('Y-m-d',strtotime($ _ POST ['personal_ic_from']));' ,並使用更新查詢'mysql_query(「UPDATE personal_id_ic SET personal_ic_from ='」.mysql_real_escape_string($ _ POST [「personal_ic_from」])。「''WHERE LAS_login_id ='」.mysql_real_escape_string($ _ POST [「LAS_login_id」])。「 「「); 結果仍然一樣。任何建議? – afifi

+0

不確定你的查詢,但你應該通過在$ personal_ic_from –

+0

ok thx上執行回顯來檢查日期是否已被正確格式化。我使用這個查詢來解決mysql_query(「UPDATE personal_id_ic SET personal_ic_from = STR_TO_DATE('」。mysql_real_escape_string( $ _POST [「personal_ic_from」])。「','%Y-%m-%d')WHERE LAS_login_id ='」.mysql_real_escape_string($ _ POST [「LAS_login_id」])。「'」); thx的想法 – afifi