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 LocalDayOfWeekklasa. 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..7wartości począwszy od poniedziałku. W starszych wersjach możesz użyć sztuczki,(date("w", $timestamp) + 6) % 7aby uzyskać0..6wartości począwszy od poniedziałku.