如何转换字符串日期以与数据库中的日期进行比较,PHP

我正在尝试将发送给函数的字符串转换为日期,以便可以将其与数据库中的日期字段进行比较,但是它不起作用,我也不知道为什么。


我已经试过了:


<a href="<?php echo site_url('job/DOEIntakeForm/' . $hearingdate); ?>">Download Intake Forms</a>


public function DOEIntakeForm($hearingDate) {

    $newDate = date_format(date_create($hearingDate), 'Y-m-d');

    $query = 'SELECT id, orderdata, reportername, hearing FROM job WHERE jobtypeid = 307 AND hearingtype = 9 AND hearing = ' . $newDate;

    $result = $this->db->query($query)->result();

    echo '<pre>'; print_r($result); exit;

}

然后,我尝试以已格式化的格式发送日期,如下所示:


<a href="<?php echo site_url('job/DOEIntakeForm/' . date('Y-m-d',strtotime($hearingdate))); ?>">Download Intake Forms</a>

但是我一直为$ result得到一个空数组。我看不到我在做什么错。我在网上查找了许多示例,它们都以这种方式进行,所以为什么它不起作用?


如果我将日期硬编码到查询中,则一切正常。


TIA。


编辑:当我var_dump $ hearingDate时,我得到C:\ ### \ application \ controllers \ Job.php:2462:string'2019-03-01'(length = 10)


小怪兽爱吃肉
浏览 182回答 1
1回答

明月笑刀无情

首先,您应该使用准备好的语句,这样可以避免SQL注入和此类问题。您需要在日期上加上单引号,所以它看起来像这样AND hearingtype = 9 AND hearing ='2019-03-01':public function DOEIntakeForm($hearingDate) {&nbsp; &nbsp; $newDate = date_format(date_create($hearingDate), 'Y-m-d');&nbsp; &nbsp; $query = "SELECT id, orderdata, reportername, hearing FROM job WHERE jobtypeid = 307 AND hearingtype = 9 AND hearing = '" . $newDate."'";&nbsp; &nbsp; $result = $this->db->query($query)->result();&nbsp; &nbsp; echo '<pre>'; print_r($result); exit;}看到我更改了您的“ by”。
打开App,查看更多内容
随时随地看视频慕课网APP