使用sql INSERT将日期输入mysql数据库

时间:2009-10-10 04:54:09

标签: php mysql html date variables

关于如何处理这个问题的更好的建议然后我到目前为止所做的将不胜感激。现在,日期必须以正确的格式输入年 - 月 - 日。是否有一种方法可以更多地自动执行此任务,使用下拉菜单,只是不确定如何将下拉列表中的信息与我的sql INSERT INTO命令一起提交到一个字段。这就是快速视觉效果 site

以下是我的代码示例。

$date = $_POST['date'];
$title = $_POST['title'];
$entry = $_POST['entry'];





if(($date !="") && ($title !="") && ($entry !="")) {

$sql = "INSERT INTO news (date,title,entry)VALUES(
\"$date\",
\"$title\",
\"$entry\"
)";

$results = mysql_query($sql)or die(mysql_error());

}
?>







<form name="formS" method="post" action="insert.php">
<p>
Date:<input type="text" name="date" id="date" />

</p>

<p>
Title<input type="text" name="title" id="title" />
</p>
<p>
Entry:<textarea name ="entry"  ></textarea>
</p>

<p>
Submit:<input type="submit" name="submit" id="submit" />
</p>


</form>

3 个答案:

答案 0 :(得分:3)

根据您的需要,一个自由格式的日期输入字段可以很好。这将为人们提供进入日期的灵活性。例如,如果有人输入“昨天”或“7天前”,这将有效。

$date = date("Y-m-d", strtotime($_POST['date']));

演示:

$date_expressions = array(
    "yesterday",
    "tomorrow",
    "7 days ago",
    "next year",
    "last month",
    "10 jan 08"
);

date_default_timezone_set("America/Los_Angeles");

echo "<pre>";
foreach ($date_expressions as $date_expression) {
    $date = date("Y-m-d", strtotime($date_expression));
    echo "{$date_expression} = {$date}\n";
}
echo "</pre>";

输出(于10-9-2009执行):

yesterday = 2009-10-08
tomorrow = 2009-10-10
7 days ago = 2009-10-02
next year = 2010-10-09
last month = 2009-09-09
10 jan 08 = 2008-01-10

答案 1 :(得分:0)

您可以简单地将日期作为多个下拉框接受,然后在将其输入数据库

之前将它们合并
$date = $_POST['dateyear']."-".$_POST['datemonth']."-".$_POST['dateday'];

答案 2 :(得分:0)

如果您有多个日期输入,可以将其组合如下:

$date = sprintf('%04d-%02d-%02d', $_POST['date_year'], $_POST['date_month'], $_POST['date_day']);