Po pierwsze myślę, że format daty jest niezrozumiały dla strtotime, bo zapis:
strtotime($_POST['dzien']. $_POST['miesiac']. $_POST['rok'])
dla podanej daty 19.06.1983 to będzie strtotime('1961983'). Nie ma tam zera przed miesiącem, bo go nie masz w select i nie ma też kropek, bo te służą do łączenia ciągów (konkatenacja), a nie są wstawiane w samą datę. Bez 0 przed miesiącem sobie pewnie poradzi, ale taki format jest raczej błędny, dodałbym kropki i spróbował.
Po drugie, jak właśnie sprawdziłem, date dla formatu N da numer dnia tygodnia z zakresu 1-7: https://www.php.net/manual/en/function.date.php a Twoja tablica ma 7 elementów, ale o indeksach od 0 do 6 (w programowaniu często liczymy od zera). W związku z tym będzie próbował dostać się do $dni_tygodnia[7], a to spowoduje błąd, bo takiego elementu nie ma. Najprościej chyba zapisać, aby tablica była numerowana od 1 i wtedy element o indeksie 7 faktycznie będzie niedzielą.
Tak przy okazji, w kodzie raczej niezbyt liczy się to, aby było mało pisania. Ważniejsze jest to, aby był generalnie dobry i czytelny, a nie najkrótszy. Tutaj brakuje Ci np. sprawdzenia czy $_POST['dzien'] i pozostałe wartości w ogóle zostały przesłane albo walidacji ich - co gdy wybiorę nieistniejącą datę lub w ogóle wyślę tam literki zamiast dni tygodnia.