在我的应用程序中,我有一个搜索功能,用于搜索我的约会。这是一种使用LIKE查找和匹配任何被搜索字符串的简单方法。
棘手的部分是,我也希望能够搜索" january"并返回created_at
一月份发现的所有结果。接下来,我希望能够搜索" 24 jan"或" 24月1日和#34;并返回在1月24日创建的所有约会。我可以使用以下任一方法执行此操作:
搜索" 1月":
$result = Carbon::createFromFormat('F', $search)
搜索" 24 jan"例如:
$result = Carbon::createFromFormat('d M', $search)
如果我确实搜索" 1月和#34;这一切都有效。但当我搜索其他内容时,例如" doctor",它会失败并给我一个错误。我的问题是,如何检查搜索字符串是否为日期(或仅仅是一个月或上面公布的一天和一个月),如果匹配则返回true,但如果不匹配则返回false ?
答案 0 :(得分:3)
如果提供的字符串不是有效日期,那么PHP的DateTime
对象构造函数的过程版本会返回false:
date_create("Some string that isn't a date"); // returns false
我对Laravel不太了解,但是如果你使用的Carbon
类扩展了PHP自己的DateTime
类,那么你可能会发现它们自己的实现。