【问题标题】: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_mysqlmysql 已被弃用,很快您的代码将停止运行。 pdo_mysql documentation
  • dateTimeStart 是数据库中的字段名称,$date 值是从日期选择器文本框派生的?
  • 是的@kuya。我需要回应它。

标签: php html mysql date datetime


【解决方案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。谢谢!
        猜你喜欢
        • 1970-01-01
        • 2020-06-02
        • 1970-01-01
        • 2022-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-05
        相关资源
        最近更新 更多