Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]uruchomienie skryptu a otwarcie modal-a
Forum PHP.pl > Forum > Przedszkole
krzesik
mam skrypt korzystający z Bootstrap-a, a w nim okienek modal-owych.
Na początku skryptu mam deklarację dotyczącą dzisiejszego dnia i godziny

  1. $DataTeraz = date("Y-m-d H:i");


oczywiście jeśli uruchomię skrypt i wyświetlę okno modal-owe to widzę poprawną datę i godzinę

  1. <input type="datetime-local" class="form-control" value="<?php echo date('Y-m-d H:i', $DataTeraz); ?>" name="start" required />


i wszystko gra, dopóki nie uruchomię skryptu i nie pozostawię go np na 10 min. Uruchamiając okno modalowe oczywiście mam godzinę wejścia na stronę, a nie aktualną.
Jak spowodować, aby uruchamiając modal-a była pobierana aktualna data i godzina?
Dziękuję za podpowiedzi
Tomplus
Niestety nie będzie ci działać, bo modal to część HTML, więc jeżeli chcesz zmieniać czas to musisz użyć JavaScript i/lub łączyć się z skryptem PHP podający konkretny czas.

Zwykle wystarczy sam JavaScript, chyba że obawiasz się że ktoś będzie podawał datę wstecz lub z przyszłości.
krzesik
dziękuję za odpowiedź. Czy mogę liczyć na przykład takiego skryptu?
trueblue
A użytkownik ma możliwość zmiany tej daty, tj. podania innej? Jeśli nie to w jakim celu w ogóle to pole.
krzesik
Tak musi mieć możliwość jej zmiany. W większości przypadków powinna to być data i godzina aktualna czasu rzeczywistego.
Tomplus
Kod:
  1. <?php echo date('Y-m-d H:i', $DataTeraz); ?>
Możesz zostawic, ale jeżeli chcesz aktualizować co 10 minut to musisz pobawić się np. takim kodem:


Kod
function updateDateTime() {
        const inputField = document.querySelector('input[name="start"]');
        const now = new Date();
        
        // Ustaw format zgodny z datetime-local - ucina datę do 16 znaków YYYY-MM-DD HH:ii [1234-67-90 23-56]
        const formattedDateTime = now.toISOString().slice(0, 16);
        inputField.value = formattedDateTime;
    }

    // Uruchom funkcję na początku
    updateDateTime();

    // Aktualizuje co 10 * 60 * 1000 milisekund
    setInterval(updateDateTime, 600000);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.