Проверка диапазона дат в php или jquery


Как я могу условиться в PHP 5 (или jquery), если я нахожусь в диапазоне дат? Например, я хочу, чтобы обусловить диапазон дат Если он находится в пределах диапазона, отправьте сообщение "в течение периода" В противном случае" вне периода "

Дело в том, что дата, которую я хочу проверить, составляет 20-12-2001, и я хочу знать, находится ли она в период с 2016 по 2017 год

Пример: 20-12-2001 с 20-12-2015 по 2016 год "вне периода"; из 20-12-2016 - 2017 "в течение периода"

Спасибо.

Author: Juan Pablo Bustamante Luna, 2016-12-26

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"; и результат будет таким же.

 3
Author: Francisco Romero, 2016-12-26 19:44:45

Вы можете использовать класс 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';
}

См. Демо

 0
Author: Black Sheep, 2016-12-26 20:14:37