我将在mySQL中为我正在构建的应用程序实现一个搜索功能, 用户类型[现在,以后将是日历选择器]开始日期和结束日期, 然后单击搜索
好到目前为止,但考虑到了
我不担心闰年,我会将所有月份循环到31天,因为如果这一天在数据库中,它将获取它,否则,它将返回31并且没有任何返回,因为没有一天,
我使用varchar作为我的日期(没有时间戳),因为它们是从json [iOS]导入的
好的,希望有意义,
这里是代码,
<?PHP $start = $_POST['start_date']; $end = $_POST['end_date']; $start_time = explode('/', $start); $end_time = explode('/', $end);
$count_start = $start_time[0];
$count_end = $end_time[0];
$month_start = $start_time[1];
$month_end = $end_time[1];
$year_start = $start_time[2];
$year_end = $end_time[2];
function cuenta($count_start, $count_end) {
for($count_start; $count_start <= $count_end; $count_start++) {
print $count_start . "<BR>";
}
}
if (!isset($_POST['Submit1']) || ($start == "Start Date" && $end == "End Date") || ($start == "" && $end == "End Date") || ($start == "Start Date" && $end == "")
|| ($start == "" && $end == ""))
{
print ("no data yet")."<BR>";
}
if ($year_start[2] > $year_end[2]){
print ("Please make sure end date Year is equal or greater than start date Year");
}
if (($month_start > $month_end) && ($year_start <= $year_end)){
print ("Please make sure end date Month is greater than start date Month");
}
elseif (($month_start > $month_end) && ($year_start < $year_end)){
cuenta($count_start, $count_end);
}
elseif ($count_start > $count_end) {
print ("Please make sure end date Day is greater than start date Day");
}
?>
我正在开始使用php,对不起,如果我想念显而易见的!,[这就是为什么我要问哈哈] 所以,如果我错过了在日期范围内搜索的其他一些重要验证,请告诉我,并且还请指出我在这个ifs森林的最佳方向!
非常感谢!
答案 0 :(得分:2)
将日期转换为unix时间戳然后比较整数更容易。 PHP具有用于此目的的函数strtotime。如果您已经分割了日期,则可以使用mktime。