0

ご存知のように、データベースの日付形式は Ymd です。日付を dmY でエコーする必要があります。これはエコーのコードです:

    <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 から Ymd (データベースの日付の標準形式) に戻す必要があることです。しかし、私はそれを管理することはできません..

これは私の更新クエリです:

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

?>

データベースが新しい日付を保存できるように、フォーマットを dmY から Ymd に戻すにはどうすればよいですか? クエリを for に変更しようとしました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"])."'");
4

2 に答える 2

2

このシンプルなショートコードで簡単に実現できます...

$dmy = "20-12-2013";
list($day, $month, $year) = explode("-", $dmy);
$ymd = "$year-$month-$day";
echo $ymd;
于 2013-10-01T01:15:16.893 に答える
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);
于 2013-10-01T03:38:59.373 に答える