我对php很新。我认为这很直接,但我很困惑。
我有一个表格要求用户选择他们选择的日期,他们输入的格式是dd / mm / yyyy
链接的mysql数据库格式为yyyy / mm / dd,据我所知你无法改变这一点。
我只想弄清楚我可以在哪里更改日期的格式。它会在sql行中发送信息吗?
我发现了这个无关的答案:
<?php
$date = date("Y-m-d");
mysql_query("INSERT INTO date_table VALUES ('$name', '$date')", $db_connection);
?>
但我不能让这个工作......
这里是我目前拥有的代码的一些片段:
// Check for night attending:
if (empty($_POST['night_attending'])) {
$errors[] = 'You forgot to enter the night you want to attend.';
} else {
$na = mysqli_real_escape_string($dbc, trim($_POST['night_attending']));
}
.....................................
// Make the query:
$q = "INSERT INTO guests (first_name, last_name, email, night_attending) VALUES ('$fn', '$ln', '$e', '$na')";
$r = @mysqli_query ($dbc, $q); // Run the query.
if ($r) { // If it ran OK.
.....................................
<p>Night Attending: <input type="text"id="datepicker" name="night_attending" size="10" value="<?php if (isset($_POST['night_attending'])) echo $_POST['night_attending']; ?>" /></p>
谢谢你的时间。
阿拉斯泰尔
答案 0 :(得分:7)
要从表单中获取日期值,您可以执行以下操作:
$date = date('Y/m/d', strtotime($_POST['night_attending']));
假设:
POST
标记中使用<form>
方法或相应更改。您需要使用strtotime
:
$date = date('Y/m/d', strtotime($date));
答案 1 :(得分:2)
我通常使用此代码将dd/mm/yyyy
转换为yyyy/mm/dd
:
$convert = 'dd/mm/yyyy';
$converted = implode(/, array_reverse(explode(/, $convert)));
我知道有一些内置函数可以做到这一点,但我认为通过这种方式它可以更加自定义。