更新查询时格式化日期列

时间:2013-10-01 04:11:29

标签: php date wamp

我的日期类型是date,数据是2010-08-01我在回声时从Y-m-d转换为d-m-Y 输出 - 01-08-2010

回音代码

<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>

我应该在我的更新查询中添加什么来从d-m-Y转换为Y-m-d。我发现我的数据库无法存储新的日期数据,因为数据库格式为date Y-m-d

更新代码

<?php 
$personal_ic_from = $_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"])."'");
?>

5 个答案:

答案 0 :(得分:1)

请参阅STR_TO_DATE()。 您的查询应该如下所示,

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"])."'");

答案 1 :(得分:0)

只需在查询中使用STR_TO_DATE函数即可使用mysql函数。 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

“UPDATE personal_id_ic SET personal_ic_from = STR_TO_DATE('”。mysql_real_escape_string($ _ POST [“personal_ic_from”])。“','%d-%m-%Y')WHERE LAS_login_id ='”。mysql_real_escape_string($ _ POST [ “LAS_login_id”]) “'”;

答案 2 :(得分:0)

<?php 
 $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($personal_ic_from)."'  WHERE LAS_login_id = '".mysql_real_escape_string($_POST["LAS_login_id"])."'");
?>

试试这个。这将解决您的问题。

答案 3 :(得分:0)

我最近在这个论坛上学到了“爆炸”,并且已经像这样实现了它:

$frontenddob = $POST['dob'];    
list ($m, $d, $y) = explode('/', $frontenddob);    
$dob = sprintf("%04d-%02d-%02d", $y, $m, $d);

您可以使用它来转换日期格式,并且不会遇到strtotime日期限制的问题。

答案 4 :(得分:0)

Try this code
<?php 
$personal_ic_from = $_POST['personal_ic_from'];
$personalDate=date_create($personal_ic_from);
$pdate=date_format($personalDate,"d-m-Y");

mysql_query("UPDATE personal_id_ic SET personal_ic_from ='".mysql_real_escape_string($pdate)."'  WHERE LAS_login_id = '".mysql_real_escape_string($_POST["LAS_login_id"])."'");

?>