![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 20.08.2013 Ostrzeżenie: (0%) ![]() ![]() |
daty mi jeszcze stwarzają problem
![]() chcę przejść w pętli przez wiele dat i policzyć dni robocze. nie wiem jak popchnąć dzień do przodu o jeden. ja to zrobiłem tak: Kod <!DOCTYPE html> <html> <head> <style> body {font-size: 10px} </style> </head> <body> <form action="" method="post" /> Data od: <input type="text" name="data_od" /> Data do: <input type="text" name="data_do" /> <input type="submit" name="submit" value="Oblicz" /> </form> <hr /> <?php if(isset($_POST['submit'])) { // jeśli naciśnięto guzik $data_od = $_POST['data_od']; $data_do = $_POST['data_do']; $data_od = explode('-', $data_od); $data_do = explode('-', $data_do); $dzien_od = $data_od[0]; $mies_od = $data_od[1]; $dzien_do = $data_do[0]; $mies_do = $data_do[1]; $data_od = date('Y-m-d', mktime(0,0,0,$mies_od,$dzien_od,2013)); $data_do = date('Y-m-d', mktime(0,0,0,$mies_do,$dzien_do,2013)); echo '<p>data OD: <b>'.$data_od.'</b> - '; echo 'data DO: <b>'.$data_do.'</b> - '; $sek_od = strtotime($data_od); $sek_do = strtotime($data_do); $sek = $sek_do - $sek_od; $doba = 60*60*24; $dni = floor(($sek/$doba)+1); echo 'liczba dni: <b>'.$dni.'</b></p><hr />'; $dni_robocze = 0; for($i=1; $i<=$dni; $i++){ $dzien_od = intval($dzien_od, 0); $mies_od = intval($mies_od, 0); $data_od = date('N', mktime(0,0,0,$mies_od,$dzien_od,2013)); $data = date('Y-m-d', mktime(0,0,0,$mies_od,$dzien_od,2013)); echo $data.' - '; if($data_od == 7 or $data_od == 6) { echo '<span style="color: red">weekend.</span><br />'; } else { if( ($dzien_od == 1 and $mies_od == 1) or ($dzien_od == 1 and $mies_od == 4) or ($dzien_od == 1 and $mies_od == 5) or ($dzien_od == 3 and $mies_od == 5) or ($dzien_od == 30 and $mies_od == 5) or ($dzien_od == 15 and $mies_od == 8) or ($dzien_od == 1 and $mies_od == 11) or ($dzien_od == 11 and $mies_od == 11) or ($dzien_od == 25 and $mies_od == 12) or ($dzien_od == 26 and $mies_od == 12) ) { echo '<span style="color: red">swieto!</span><br />'; } else { echo 'dzien roboczy.<br />'; $dni_robocze += 1; } } $dzien_od += 1; } echo '<hr />dni roboczych: <b>'.$dni_robocze.'</b>'; } ?> </body> </html> liczy ale tylko miesiącami. jak chcę więcej miesięcy to się gubi bo zmienna $dzien_od rośnie dalej(ponad 31). napewno można to zrobić prościej ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 07:25 |