Проверка диапазона дат в php или jquery
Как я могу условиться в PHP 5 (или jquery), если я нахожусь в диапазоне дат? Например, я хочу, чтобы обусловить диапазон дат Если он находится в пределах диапазона, отправьте сообщение "в течение периода" В противном случае" вне периода "
Дело в том, что дата, которую я хочу проверить, составляет 20-12-2001, и я хочу знать, находится ли она в период с 2016 по 2017 год
Пример: 20-12-2001 с 20-12-2015 по 2016 год "вне периода"; из 20-12-2016 - 2017 "в течение периода"
Спасибо.
2 answers
Я собираюсь предложить вам два возможных решения с PHP.
Когда вы всегда используете один и тот же формат даты
Если ваши даты всегда в формате день-месяц-год, вы можете использовать эту функцию explode
из PHP, чтобы получить год и выполнить условие:
$fecha = "20-12-2001";
$fechaDividida = explode("-", $fecha);
$anno = $fechaDividida[2];
if ($anno >= 2016 && $anno <=2017){
echo "Está dentro del periodo";
}else{
echo "Está fuera del periodo";
}
Вернет вам Está fuera del periodo
для этого конкретного случая.
Когда вы используете разные форматы даты
В этом случае вы можете использовать функцию strtotime
вместе с функцией date
чтобы получить год, а затем сравнить его, чтобы увидеть, находится ли он в диапазоне:
$fecha = "20-12-2001";
$anno = date('Y', strtotime($fecha));
if ($anno >= 2016 && $anno <=2017){
echo "Está dentro del periodo";
}else{
echo "Está fuera del periodo";
}
Вернет вам Está fuera del periodo
для этого конкретного случая.
В последнем случае вы можете использовать $fecha = "2001-12-20";
, и это даст вам тот же результат. Даже $fecha = "2001/12/20";
или $fecha = "20/12/2001";
и результат будет таким же.
Вы можете использовать класс DateTime и вытащить с помощью ->format("Y")
год и так проверить даты:
$fecha1 = new DateTime('20-12-2001');
$fecha1 = $fecha1->format("Y"); //=> 2001
$fecha2 = new DateTime('20-12-2016');
$fecha2 = $fecha2->format("Y"); //=> 2016
$fechaInicio = new DateTime('20-12-2015');
$fechaInicio = $fechaInicio->format("Y"); //=> 2015
$fechaFin = new DateTime('01-01-2017');
$fechaFin = $fechaFin->format("Y"); //=> 2017
// Creamos una función para comprobar las fechas si están en el rango
function comprobarFecha($fecha, $fechaInicio, $fechaFin) {
return $fecha >= $fechaInicio && $fecha <= $fechaFin;
}
// FECHA 1: 2001
if (comprobarFecha($fecha1, $fechaInicio, $fechaFin)) {
echo 'Esta dentro del periodo';
} else {
echo 'Esta fuera del periodo'; // <= Resultado
}
// FECHA 2: 2016
if (comprobarFecha($fecha2, $fechaInicio, $fechaFin)) {
echo 'Esta dentro del periodo'; // <= Resultado
} else {
echo 'Esta fuera del periodo';
}