如何以提交按钮触发的日期时间格式获取日期
Posted
技术标签:
【中文标题】如何以提交按钮触发的日期时间格式获取日期【英文标题】:How to get date in a datetime format triggered by a submit button 【发布时间】:2015-12-08 18:02:43 【问题描述】:我正在为我的系统创建一份每日报告。
我有一个输入类型的文本,单击该文本时会出现datepicker
。单击提交按钮后,它将从数据库中获取date
。但是这个字段已经存储了datetime
。如何从数据库中获取date
?
这是我的代码:
<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'");
【问题讨论】:
您需要从数据库中获取日期并将其放入日期选择器中,是这样吗? 我需要从 db 中获取日期(其中存储了日期时间)并在表单中回显。 在您继续之前,我会提出一个友好的建议,将您的代码从mysql
更改为 pdo_mysql
。 mysql
已被弃用,很快您的代码将停止运行。 pdo_mysql documentation
dateTimeStart
是数据库中的字段名称,$date
值是从日期选择器文本框派生的?
是的@kuya。我需要回应它。
【参考方案1】:
请尝试以下代码。
$query = mysql_query("SELECT * FROM tblpatientservices WHERE dateTimeStart = '$date' AND status='Done'");
谢谢
【讨论】:
这是我的第一次尝试。它没有奏效。无论如何感谢您的建议。 如果您的数据库字段的值类似于 2015-09-01 00:00:00 那么查询将是 $date = '2015-09-01%' ; $query = mysql_query("SELECT * FROM tblpatientservices WHERE dateTimeStart like '$date' AND status='Done'");这对我来说非常完美。【参考方案2】:用以下查询替换您的查询,这可能对您有所帮助。
$query = mysql_query("SELECT * FROM tblpatientservices WHERE DATE(dateTimeStart) = '$date' AND status='Done'");
【讨论】:
【参考方案3】:使用mysqldate()
函数获取日期。
$query = mysql_query("SELECT * FROM tblpatientservices WHERE date(dateTimeStart) = date('$date') AND status='Done'");
【讨论】:
【参考方案4】: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'");
【讨论】:
【参考方案5】:首先确保存储在数据库中的日期格式与 DatePicker 的日期格式匹配。
然后,像这样重写您的查询...
$query = mysql_query("SELECT * FROM tblpatientservices WHERE dateTimeStart = '$date' AND status='Done'");
然后您可以将任一值回显到页面...$date
或您的查询检索到的值。
注意:如果您的数据库字段是datetime
,那么它存储的数据类似于2015-09-12 00:00:00
,它们可能不匹配。 DatePicker 可以简单地发送2015-09-12
再次,请帮自己一个忙并转换为pdo_mydql
你会很高兴你后来这样做了。 mysql
已被弃用,您对数据库的 sql 注入攻击持开放态度。
mysql
将很快停止支持,您的代码将完全停止运行。
参考
pdo_mysql
【讨论】:
会这样做@kuya。谢谢!以上是关于如何以提交按钮触发的日期时间格式获取日期的主要内容,如果未能解决你的问题,请参考以下文章