Standardowe reprezentacje części daty oparte na literach są świetne, z wyjątkiem faktu, że nie są tak intuicyjne. Znacznie wygodniejszym sposobem jest identyfikacja podstawowych abstrakcji i szeregu konkretnych implementacji. Poza tym dzięki takiemu podejściu możesz skorzystać z autouzupełniania.
Ponieważ mówimy tutaj o datach, wydaje się prawdopodobne, że podstawową abstrakcją jest ISO8601DateTime
. Jedną z konkretnych implementacji jest aktualna data i godzina, ta, której potrzebujesz, gdy wysyła żądanie do twojego zaplecza, stąd Now()
klasa. Drugi, który jest dla ciebie przydatny, to data i godzina dostosowana do jakiejś strefy czasowej. Nic dziwnego, że to się nazywa AdjustedAccordingToTimeZone
. I wreszcie, potrzebujesz dnia tygodnia w strefie czasowej minionej daty i godziny: jest do tego LocalDayOfWeek
klasa. Tak więc kod wygląda następująco:
(new LocalDayOfWeek(
new AdjustedAccordingToTimeZone(
new Now(),
new TimeZoneFromString($_POST['timezone'])
)
))
->value();
Aby uzyskać więcej informacji na temat tego podejścia, zajrzyj tutaj .
date("N", $timestamp)
do pobierania1..7
wartości począwszy od poniedziałku. W starszych wersjach możesz użyć sztuczki,(date("w", $timestamp) + 6) % 7
aby uzyskać0..6
wartości począwszy od poniedziałku.