Codeigniter выберите хотя бы дату и время с этого момента

Итак, у меня есть форма в структуре CI, и в этой форме пользователь может выбрать дату, а также дату в прошлом. Но я не хочу, чтобы пользователи могли выбирать дату в прошлом. Так, например, если кто-то заполняет форму, он не может выбрать дату до 04-04-2018 (то есть сегодня). это то, что я хочу. Прямо сейчас кто-то может выбрать дату, например, с 1980 года.

На мой взгляд, это мой код формы:

<?php  echo form_open('index.php/Jongeren_activiteiten/Add_activiteit'); ?>
        <br>
        <center>Naam van activiteit:</center>
            <div class = "form-group">
                <input class = "form-control" name = "activiteit" id = "activiteit" type = "text">
            </div>
            <center>Begindatum:</center>
             <div class = "form-group">
                <input class = "form-control" name = "begindatum" id = "begindatum" placeholder = "Startdatum cursus" type = "date">
            </div>
            <center>Einddatum:</center>
             <div class = "form-group">
                <input class = "form-control" name = "einddatum" id = "einddatum" placeholder = "einddatum cursus" type = "date">
            </div>

            <div>
                <button class = "btn btn-primary" name = "Add_activiteit" >Toevoegen</button>
            </div>
        </form>    

begininddatum и einddatum являются датами.

функция контроллера формы с правилами проверки:

public function Add_activiteit()
    {
    if (isset($_POST['Add_activiteit'])) {
            $this->form_validation->set_rules('activiteit', 'Activiteit', 'required|is_unique[activiteit.activiteit]');
            $this->form_validation->set_rules('begindatum', 'Begindatum', 'required');
            $this->form_validation->set_rules('einddatum', 'Einddatum', 'required');
            //If form validation true
            if ($this->form_validation->run() == TRUE) {
               // echo 'form validated';

                $data = array (
                    'activiteit'=>$_POST['activiteit'],
                    'begindatum'=>$_POST['begindatum'],
                    'einddatum'=>$_POST['einddatum'],
                    );
                $this->db->insert('activiteit',$data);

                $this->session->set_flashdata("success", "u heeft een nieuwe activiteit toegevoegd");
                redirect("index.php/Jongeren_activiteiten", "refresh");
            }
        }


    }

Так как я могу это исправить? возможно с правилом проверки формы?

спасибо, любая помощь приветствуется

Используете ли вы средство выбора даты js, установите minDate ..

Siva 04.04.2018 15:30
stackoverflow.com/a/43274862/6068342
ArmKh 04.04.2018 15:31

Я не использую javascript. Не могу я сделать это с помощью php или codeigniter?

Jeremy 04.04.2018 15:31
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
558
2

Ответы 2

Можно сравнить даты с классом DateTime

$begindatum = $_POST['begindatum'];

$date = new DateTime($begindatum)->format('Y-m-d');
$today = new DateTime()->format('Y-m-d');

if ($date < $today) {
   echo 'Date is in the past';
}

Если вы хотите использовать проверку формы CI, вы можете добавить функцию обратного вызова, например 'rules' => 'required|compare_date'. И в функции compare_date() вы можете использовать приведенный выше код

Используйте проверку HTML5 на стороне клиента, чтобы ваш html был

     <div class = "form-group">
        <input class = "form-control" name = "begindatum" id = "begindatum" placeholder = "Startdatum cursus" min = "<?php echo $today_date;?>" type = "date">
    </div>

HTML-ввод

А для codeigniter используйте настраиваемое правило проверки

function custom_date_validation($date)
{
  //return true or false
}
//then used it you form validation
$this->form_validation->set_rules('begindatum', 'Begindatum', 'required|callback_custom_date_validation');

Другие вопросы по теме