如何在提交按钮触发时以日期时间格式获取日期

3
我正在为我的系统创建每日报告。我有一个文本输入框,当单击它时,会出现一个日期选择器。单击提交按钮后,它将从数据库获取日期。但是该字段存储了日期时间。如何从数据库中获取日期?
以下是我的代码:
<input type="text" class="form-control" id="date" name="date" required autocomplete="off" title="Choose Date" >
<input type="submit" name="submit" id="submit" value="Show Report">

 $query = mysql_query("SELECT * FROM tblpatientservices WHERE date_format(dateTimeStart,'%Y-%m-%d') = '$date' AND status='Done'");

你需要从数据库中获取日期并将其放入日期选择器中,是这样吗? - samumaretiya
在您继续之前,我想友情建议您将代码从mysql更改为pdo_mysqlmysql已被弃用,很快您的代码将停止运行。pdo_mysql文档 - Kuya
HTML 5中有<input type="date">,它会自动弹出日期时间选择器,无需使用jQuery UI。 - jonbaldie
日期和日期时间是非常棘手的小家伙,必须非常小心地处理它们。 - Kuya
<input type="date"> 在最新版本的Firefox(40.0.3)和IE 11(11.0.9600.17905)中无法正常工作。但是在Chrome中可以正常使用。@jonbaldie - Kuya
显示剩余3条评论
5个回答

0
请尝试以下代码。

$query = mysql_query("SELECT * FROM tblpatientservices WHERE dateTimeStart = '$date' AND status='Done'");

谢谢


这是我的第一次尝试。但它没有成功。无论如何,感谢建议。 - samantha.nicole
如果您的数据库字段的值类似于2015-09-01 00:00:00,那么查询将是$date = '2015-09-01%'; $query = mysql_query("SELECT * FROM tblpatientservices WHERE dateTimeStart like '$date' AND status='Done'"); 这对我来说完美地工作。 - samumaretiya

0
First of all, we should avoid keeping the name 'date' in textfield. It's better to have different name to avoid some ambiguity.

Changing the name of textfield to 'SelectedDate'

<input type="text" class="form-control" id="date" name="SelectedDate" required autocomplete="off" title="Choose Date" >
<input type="submit" name="submit" id="submit" value="Show Report">

In Table, dateTimeStart must be in yyyy-mm-dd h:i:s format. So, Better to have that format of date picker. If, it's not having, change it to yyyy-mm-dd format by.

$SelectedDate=date("YYYY-mm-dd",strtotime($SelectedDate)); (If not in yyyy-mm-dd format. Otherwise OK)

$query = mysql_query("SELECT * FROM tblpatientservices WHERE dateTimeStart LIKE '$SelectedDate%' AND status='Done'");

0

首先确保数据库中存储的日期格式与DatePicker的日期格式匹配。

然后,将查询重写为以下形式...

$query = mysql_query("SELECT * FROM tblpatientservices WHERE dateTimeStart = '$date' AND status='Done'");

您可以将任一值echo到页面上...$date或者查询所检索的值。

注意:如果您的数据库字段是datetime,那么它存储的数据格式可能是2015-09-12 00:00:00,并且它们可能不匹配。日期选择器可能只会发送2015-09-12

再次提醒,最好转换为pdo_mysql,日后你会感激自己的。 mysql已被弃用,并且您的数据库很容易遭受sql注入攻击。

mysql即将停止支持,您的代码将完全停止运行。

参考资料

pdo_mysql


会做的 @kuya。谢谢! - samantha.nicole

0
使用 MySQL 的 date() 函数来获取日期。
$query = mysql_query("SELECT * FROM tblpatientservices WHERE date(dateTimeStart) = date('$date') AND status='Done'");

0

请使用以下查询替换您的查询,这可能对您有所帮助。

$query = mysql_query("SELECT * FROM tblpatientservices WHERE DATE(dateTimeStart) = '$date' AND status='Done'");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接