我对php和mysql&需要一些帮助。 我想在mysql表中插入日期,格式为dd / mm / yyyy。
我的表格中有4列:id,name,age&生日。
我的HTML代码
<form action="php_creat_cliente.php" method="post">
Name : <input name="reference" type="text" /><br />
Age : <input name="focode" type="text" /><br />
Birthday : <input name="date" type="text" /><br />
</form>
我的PHP代码
<?php
include('config.php');
$name=$_POST['name'];
$age=$_POST['age'];
$birthday=$_POST['birthday'];
$save=mysql_query("INSERT INTO loan (name, age, birthday) VALUES ('$name', '$age', '$birthday')");
header("location: index.html");
exit();
?>
目前,日期是以mm / dd / yyyy格式插入的,但我需要它采用dd / mm / yyyy格式。
答案 0 :(得分:1)
您有多种方法,但如果您将其作为日期或时间戳插入,则效果最佳。
第一种方法是,如果将其存储在varchar字段中,但在这种情况下,您无法使用mysql date functions。
以常规方式插入:YYYY-MM-DD
而且,当你需要它时,你可以使用mysql日期函数来格式化它,或者你也可以用php代码格式化它。
如果你假设,你的$_POST['birthday'];
是mm-dd-yyyy格式,那么你应该做这样的事情
//This varaible will come from the form, this is just a test now!
$_POST["birthday"] = 'mm-dd-yyyy';
$month = substr($_POST["birthday"], 0, 2);
$day = substr($_POST["birthday"], 3, 2);
$year = substr($_POST["birthday"], 6);
$birthday = $year . "-" . $month . "-" . $day;
$save = mysql_query("INSERT INTO loan (`name`, `age`, `birthday`) VALUES ('".$name."','".$age."','".$birthday."')");
答案 1 :(得分:0)
MySQL接受格式为&#39; yyyy-mm-dd&#39;的字符串。或者&#39; yyyymmdd&#39;对于约会。因此,您可以在文本字段中以您想要的任何格式输入它,只要您确保在将其传递给数据库之前将其重新格式化(在您的代码中)为有效格式(如我所提到的格式)。
或者您可以自己指定格式:
$save=mysql_query("INSERT INTO loan (name, age, birthday)
VALUES ('$name', '$age', STR_TO_DATE('$birthday', '%d-%m-%Y'))");
jQuery UI Datepicker widget在表格中的日期很受欢迎。
正如其他人提到的那样,你现在这样做(至少按照这里所示的方式)很容易出现SQL injection,XSS,CSRF以及介于两者之间的一切。如果您想成为一名网络开发人员,我建议您了解这些攻击。
编辑:
jQuery UI Datepicker帮助的是选择日期并将其以有效的日期格式放在文本字段中。您可以指定小部件显示日期的格式,如下所示:
$( "#datepicker" ).datepicker( "option", "dateFormat", "dd-mm-yy" );
然后你可以确保MySQL接受你在insert命令中提交的日期格式,方法如上所示:
STR_TO_DATE('$birthday', '%d-%m-%Y')