Laravel 5.2比较字符串的日期?

时间:2017-03-27 19:38:03

标签: php mysql laravel date laravel-5.2

我有一个包含两个日期的表:start_date和end_date。这两列都是字符串。当我尝试查询以获得与这些日期进行比较的记录时,Laravel将它们视为字符串,而不是日期。

例如,对于此查询:

Schedule::whereDate('start_date','<=',date('m/d/Y'))->whereDate('end_date','>=',date('m/d/Y'))->get();

没有返回任何结果,这是不正确的。

有什么想法?或者比较字符串日期的任何其他方式?

感谢。

2 个答案:

答案 0 :(得分:3)

您需要创建这些列datetime而不是字符串:

$table->dateTime('start_date');
$table->dateTime('end_date');

此外,将这些列添加到$dates数组是个好主意:

protected $dates = ['created_at', 'updated_at', 'start_date', 'end_date'];

答案 1 :(得分:1)

看看Carbon。能够很好地适应时间的需要

http://carbon.nesbot.com/docs/