首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在将日期格式从d-m-Y转换为Y-m-d

正在将日期格式从d-m-Y转换为Y-m-d
EN

Stack Overflow用户
提问于 2013-10-01 09:07:09
回答 2查看 7.8K关注 0票数 0

如你所知,数据库中的日期格式是Y-m-d,我需要在d-m-Y中回显日期。下面是echo的代码:

代码语言:javascript
复制
    <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的日期后,我需要在update查询中将日期格式从d-m-Y转换回Y-m-d (这是数据库中日期的标准格式)。但是,我不能做到这一点。

这是我的更新查询:

代码语言:javascript
复制
<?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格式,以便数据库可以保存新的日期?我试图将查询更改为for personal_id_ic,但当我使用此代码时,数据库保存了一个随机日期,而不是用户选择的日期:

代码语言:javascript
复制
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"])."'");
EN

回答 2

Stack Overflow用户

发布于 2013-10-01 09:15:17

它可以很容易地通过这个简单的简短代码来实现。

代码语言:javascript
复制
$dmy = "20-12-2013";
list($day, $month, $year) = explode("-", $dmy);
$ymd = "$year-$month-$day";
echo $ymd;
票数 2
EN

Stack Overflow用户

发布于 2013-10-01 11:38:59

您可以使用PHP的strtotime函数将日期转换为Unix时间戳。在那里,您可以使用PHP的date函数以您想要的方式格式化它。

在一个步骤中:

代码语言:javascript
复制
$personal_ic_from = date('Y-m-d', strtotime($_POST['personal_ic_from']));

或者分成两个步骤:

代码语言:javascript
复制
// 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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19106368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档