我的日期类型是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"])."'");
?>
请参考 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"])."'");
只需在查询中使用STR_TO_DATE函数,即 mysql 函数。http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date
"更新personal_id_ic设置personal_ic_from = STR_TO_DATE('".mysql_real_escape_string($_POST["personal_ic_from"])."','%d-%m-%Y') 其中LAS_login_id = '".mysql_real_escape_string($_POST["LAS_login_id"])。
我最近在这个论坛上了解了"爆炸",并像这样实现它:
$frontenddob = $POST['dob'];
list ($m, $d, $y) = explode('/', $frontenddob);
$dob = sprintf("%04d-%02d-%02d", $y, $m, $d);
您可以使用它在日期格式之间进行转换,并且不会遇到 strtotime 日期限制的问题。
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"])."'");
?>
<?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"])."'");
?>
试试这个。这将解决您的问题。