我在帖子中搜索了答案,最接近的答案来自“试图发布日期 - 通过php-with-mysql-need-help”
我有一个包含2个输入字段的表单。用户从html5弹出日历选择器中选择日期,输入时间类型,然后将表单提交给mysql数据库。我无法获取日期和时间字段以验证/上传到数据库。
在我的MySQL数据库中,我有一个名为约会的表,其中一个名为curdate的列具有DATE类型;另一列称为curtime,类型为TIME。
我的PHP文件在文件顶部有PHP验证和SQL操作,底部有粘性html表单。表单用于发送表单
以下是代码:
$td = date( 'Y-m-d H:i:s', $phpdate );
$phpdate = strtotime( $td );
if(isset($_POST['submitted'])) {
require_once('mysqli_connect.php');
$errors=array();
if(empty($_POST['curdate'])) {
$errors[]='Your date did not match';
} else {
$td=mysqli_real_escape_string($dbc,trim($_POST['curdate']));
}
if(empty($_POST['curtime'])) {
$errors[]='Your time is empty';
} else {
$tt=$_POST['curtime'];
}
if(empty($errors)) {
$q="INSERT INTO users (first_name,last_name,email,curdate,curtime,physician,reason) VALUES ('$fn','$ln','$e','$td','$tt','$phys','$reason')";
$r=@mysqli_query($dbc,$q);
if($r) {
echo '<h1>Thanks</h1>
<p>You are now registered</p><p><br/></p>';
} else {
echo '<h1>System Error</h1>
<p class="error">You could not be registered</p>';
echo '<p>'.mysqli_error($dbc).'<br/><br/>Query:'.$q.'</p>';
}
mysqli_close();
include('includes/footer.html');
exit();
} else {
echo '<h1>Error</h1>
<p class="error">The following errors occurred:<br/>';
foreach ($errors as $msg) {
echo "-$msg<br/>\n";
}
echo '</p><p> Please try again</p><p><br/></p>';
}
mysqli_close($dbc);
}
答案 0 :(得分:2)
Mysql或Mysqli支持日期格式为'yyyy-mm-dd'所以你需要在插入DB之前以适当的格式转换日期和时间
如果要在用户提交表单时插入当前日期和时间,请使用以下查询
INSERT INTO users (first_name,last_name,email,curdate,curtime,physician,reason) VALUES ('$fn','$ln','$e',CURDATE(),CURTIME(),'$phys','$reason')
但是如果你想从表单字段插入日期,请执行以下操作
$td=$_POST['curdate']; $tt=$_POST['curtime']; $td=date('Y-m-d',strtotime($td)); //Converts date to 'yyyy-mm-dd' acceptable to mysql $tt=date('H:i:s',strtotime($tt)); //converts time to HH:mm:ss //Now apply Your Query as INSERT INTO users (first_name,last_name,email,curdate,curtime,physician,reason) VALUES ('$fn','$ln','$e','$td','$tt','$phys','$reason')
答案 1 :(得分:0)
你可能遇到问题,如果你在mysql中使用table dateandtime类型创建了那一行,如果是这种情况你将无法像那样存储它。如果你希望它只是使用text或varchar ....
DATE - 以YYYY-MM-DD格式存储日期值。例如2008-10-23。 DATETIME - 存储YYYY-MM-DD HH:MM:SS格式的日期和时间值。例如2008-10-23 10:37:22。支持的日期和时间范围是1000-01-01 00:00:00一直到9999-12-31 23:59:59 TIMESTAMP - 与DATETIME类似,但有一些差异取决于MySQL的版本和服务器运行的模式。