检查日期是否在特定的日期范围PHP
我正在尝试这一个,它已经有一段时间,因为我上次用PHP编码。检查日期是否在特定的日期范围PHP
我有检查,如果给定的日期是在日期的范围之间的功能:
pr($this->isDateBetween("2014-11-15", "2014-12-05", "2014-06-14"));
public function isDateBetween($dt_start, $dt_check, $dt_end){
if(strtotime($dt_check) >= strtotime($dt_start) && strtotime($dt_check) <= strtotime($dt_end)){
return true;
} else{
return false;
}
}
但是好像我越来越false
。预期结果应该是true
,因为2014-12-05
小于2014-06-14
。
十二月份是不是比六月份这样应该是真的?
另外, 当我将2014-06-14
更改为2014-12-14
它成为现实。
对不起,我没有用PHP更新。请多多包涵。
编辑
试图将那些的strtotime,但仍然得到错误的结果
的解决方案存在的位置:
How to check if a date is in a given range?
SOLUTION:
的转换米到时间戳是一种行之有效的方法,使用时间戳,例如时间戳。
$start_date = '2009-06-17';
$end_date = '2009-09-05';
$date_from_user = '2009-08-28';
check_in_range($start_date, $end_date, $date_from_user);
function check_in_range($start_date, $end_date, $date_from_user)
{
// Convert to timestamp
$start_ts = strtotime($start_date);
$end_ts = strtotime($end_date);
$user_ts = strtotime($date_from_user);
// Check that user date is between start & end
return (($user_ts >= $start_ts) && ($user_ts <= $end_ts));
}
没错。 OP的问题似乎是你的链接文章的重复。 – 2014-12-04 18:04:33
,因为2014年12月5日低于2014年6月14日预期的结果应该是真实的。
完全错误。代码IS正在工作。 6月14日比12月12日“少”。所以你的12月12日的日期是不是之间的开始/结束日期。它已经超过了范围的最后。
我对年终事物感到困惑,并且提前思考。你是对的。 – 2014-12-04 17:23:46
预期结果应该为真,因为2014-12-05小于2014-06-14。
绝对不是。预期结果不是true
。它是false
,因为"2014-12-05"
不小于"2014-06-14"
。十二月比六月少?从来没有听说过这种奇特的逻辑。
此外,当我将2014-06-14更改为2014-12-14时,它成为现实。
这是正确的。由于"2014-12-05"
肯定小于"2014-12-14"
,因此它是true
。 5 December
明显小于14 December
。
这与PHP版本或PHP内置方法无关。这完全是关于你的逻辑。
我认为这是你在找什么:
pr($this->isDateBetween("2014-06-14", "2014-11-15", "2014-12-05"));
public function isDateBetween($dt_start, $dt_check, $dt_end){
if(strtotime($dt_check) >= strtotime($dt_start) && strtotime($dt_check) <= strtotime($dt_end)){
return true;
} else{
return false;
}
}
这将返回true
。
你应该找出哪个'dt_start'和'dt_end'是最大/最小的,然后做一个IF语句。您现在的做法是,您指定参数的顺序意味着不接受日期。例如'2014-11-15'是你的开始日期,但是**'2015-06-14'之后是**,这是你的结束日期。 – Jonathon 2014-12-04 17:18:46
此外,中间参数即您检查的日期超出了其他参数指定的范围。 – Jonathon 2014-12-04 17:23:25
谢谢我很困惑。我需要以艰苦的方式学习日期,但不要提前考虑 – 2014-12-04 17:24:23