使用php和sql将dd / mm / yyyy转换为yyyy / mm / dd

时间:2010-11-02 18:20:33

标签: php mysql datetime date

我对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>
谢谢你的时间。

阿拉斯泰尔

2 个答案:

答案 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)));

我知道有一些内置函数可以做到这一点,但我认为通过这种方式它可以更加自定义。