Autor | Zpráva | ||
---|---|---|---|
Musilda Profil |
#1 · Zasláno: 6. 12. 2015, 22:31:33
Zdravím
potřeboval bych pomoci s výpočtem data doručení. Počítám aktuální datum, plus definované dny. $deadline = date('Y-m-d', strtotime($delivery_date. ' + '.$days.' days')); Potřeboval bych ale nějak zjistit, zda vypočtené datum vyjde na víkend a přičíst o jeden, či dva dny více. Datum doručení nesmí vyjít na víkend. Díky za pomoc |
||
Keeehi Profil |
$weekend = date('N', strtotime($delivery_date. ' + '.$days.' days')) > 5; Pokud to má pak posouvat na podndělí, tak se to dá zapsat $dayOfWeek = date('N', strtotime($delivery_date. ' + '.$days.' days')); $extraDays = $dayOfWeek > 5 ? 8 - $dayOfWeek : 0; $deadline = date('Y-m-d', strtotime($delivery_date. ' + '.($days + $extraDays).' days')); |
||
blitzik Profil * |
#3 · Zasláno: 6. 12. 2015, 23:32:33
Pokud chceš mít v deadline rovnou požadované datum, tak stačí mírná úprava:
$deadline = date('Y-m-d', strtotime($delivery_date. ' + '.$days.' days next weekday')); |
||
Alphard Profil |
#4 · Zasláno: 6. 12. 2015, 23:42:02
A opravdu stačí zohledňovat sobotu a neděli? Co ostatní svátky?
Jestli se mají zohlednit svátky, je nejrozumnější napsat funkcí isWorkingDay($date) a pak iterovat potřebný počet pracovních dnů. Tohle kouzlení se strtotime je slepá ulička.
|
||
Musilda Profil |
#5 · Zasláno: 7. 12. 2015, 05:35:43
Alphard:
Předpokládám že data svátků se musí doplnit ručně. Protože Slovensko o Česko to mají rozdílné. |
||
Alphard Profil |
#6 · Zasláno: 7. 12. 2015, 09:33:26
Zadat jejich seznam samozřejmě ano, ale počítat se snad již budou automaticky. Stejně tak datum Velikonoc se přece vypočítá a nebude se ručně aktualizovat každý rok.
|
||
Musilda Profil |
#7 · Zasláno: 7. 12. 2015, 14:55:03
Ok, díky všem, vyřešeno.
Použil jsem kombinaci doplnění svátků, s nahrazením "days" za "weekday". |
||
Časová prodleva: 9 let
|
0