• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ostatni dzień miesiąca - Gdzie w kodzie umieścić -1 lub jakie są inne sposoby na napisanie kodu.

Object Storage Arubacloud
0 głosów
219 wizyt
pytanie zadane 12 czerwca 2020 w PHP przez Martita Bywalec (2,470 p.)
edycja 12 czerwca 2020 przez Martita

Jest jakiś sposób aby zrobić ten skrypt w inny sposób?

Mam skrypt, który ma pokazać ile dni ma dany miesiąc po wskazaniu miesiąca z formularza przez użytkownika. 


<form action="ostatni_dzien_miesiaca.php" method="post">
<label for="miesiac">Miesiąc:</label>
    <select name="miesiac">
        <?php
                 for($l=1;$l<=12;++$l)
             echo '<option value="'.$l.'">'.$l.'</option>';
        ?>
    </select></br></br>
         </br></br><input type="submit" name="sprawdz"  value="Sprawdź dzień tygodnia" />
         </br></br><input type="reset" name="reset"  value="Wyczyść" />
    </form>

<?php
 $miesiac = date('t', strtotime($_POST['miesiac'] . '/1'));
 echo $miesiac;
?> 

 

Skrypt,, gdzie trzeba wstawić -1, ale nie wiem gdzie. Chyba że źle myślę. Jestem początkująca.

<?php
 $miesiac = date('t', strtotime($_POST['miesiac']));
 echo $miesiac;
?>

 

4 odpowiedzi

0 głosów
odpowiedź 13 czerwca 2020 przez Martita Bywalec (2,470 p.)
Proszę o pomoc
0 głosów
odpowiedź 13 czerwca 2020 przez SzkolnyAdmin Szeryf (86,360 p.)
Skrypt ma pokazywać liczbę dni w danym miesiącu (stąd 't' jako format). Po prostu utwórz tablicę indeksowaną numerycznie, która przechowuje liczbę dni miesiąca. Odebrana z pola select wartość jest indeksem tej tablicy.
komentarz 14 czerwca 2020 przez Martita Bywalec (2,470 p.)
Tablice indeksową numerycznie umiem utworzyć , ale nie wiem jak zrobić żeby przechowywała.

Proszę o pomoc
komentarz 14 czerwca 2020 przez SzkolnyAdmin Szeryf (86,360 p.)

Proszę oto kod PHP (bez walidacji):

$liczba_dni = [0,31,28,31,30,31,30,31,31,30,31,30,31];
echo "Miesiąc {$_POST["miesiac"]} ma {$liczba_dni[$_POST["miesiac"]]} dni.";

Tablica liczba_dni jest 13 elementowa (nie ma miesiąca o numerze 0, ale już nie chciałem zmieniać twojego kodu). Użycie klamer w instrukcji echo powoduje, że nie potrzeba używać operatora konkatenacji (kropki).

Dla ścisłości powinno się podawać jeszcze rok, ponieważ w latach przestępnych luty ma 29 dni.

0 głosów
odpowiedź 14 czerwca 2020 przez Martita Bywalec (2,470 p.)

Proszę o poprawienie błędów.

Jak wybiorę 6 miesiąc to pokazuje 30, ale też pokazuje błąd .

Jak wybiorę 7 miesiąc to pokazuje też 30, ale też pokazuje błąd .

Błąd Notice: Undefined variable: miesiac in C:\xampp\htdocs\Data\ostatni_dzien_miesiaca.php on $miesiac = date('t', mktime(0, 0, 0, date($miesiac)-1, 1, ));.

Warning: A non-numeric value encountered in C:\xampp\htdocs\Data\ostatni_dzien_miesiaca.php on$miesiac = date('t', mktime(0, 0, 0, date($miesiac)-1, 1, ));
30

 

–1 głos
odpowiedź 14 czerwca 2020 przez Ehlert Ekspert (212,670 p.)
  1. Zamiast tworzyć swoje selecty itp to użyj input type month.
  2. Zwaliduj dane 
  3. Jak robisz jakiś śmieciowy skrypt to użyj https://www.php.net/manual/en/function.cal-days-in-month.php
  4. Jak chcesz ładnie to zrobić proponuję Carbon.
komentarz 14 czerwca 2020 przez Martita Bywalec (2,470 p.)
edycja 14 czerwca 2020 przez Martita

Uczę się PHP i próbuje zrozumieć PHP.

Nie chce carbonem. Chce to napisać jak najprościej i jak najzrozumialej. Takim kodem jak poniżej tylko że poprawie

Może mi pokażesz jak ten kod powinien prawidłowo wyglądać i nie śmieciowo.

<form action="ostatni_dzien_miesiaca.php" method="post">
<label for="miesiac">Miesiąc:</label>
<input type="month" name="bdaymonth">
         </br></br><input type="submit" name="sprawdz"  value="Sprawdź dzień tygodnia" />
         </br></br><input type="reset" name="reset"  value="Wyczyść" />
    </form>
<?php
$miesiac = date('t', mktime(0, 0, 0, date($miesiac)-1, 1, ));
echo $miesiac;
?>

 

Podobne pytania

0 głosów
1 odpowiedź 361 wizyt
0 głosów
3 odpowiedzi 300 wizyt

92,539 zapytań

141,382 odpowiedzi

319,476 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...