As representações de partes de datas baseadas em letras padrão são excelentes, exceto pelo fato de não serem tão intuitivas. A maneira muito mais conveniente é identificar abstrações básicas e uma série de implementações específicas. Além disso, com essa abordagem, você pode se beneficiar do preenchimento automático.
Já que estamos falando de datetimes aqui, parece plausível que a abstração básica seja ISO8601DateTime
. Uma das implementações específicas é a data e hora atual, aquela de que você precisa quando um faz uma solicitação ao seu back-end, portanto, Now()
classe. O segundo, que é de alguma utilidade para você, é uma data e hora ajustada para algum fuso horário. Não surpreendentemente, é chamado AdjustedAccordingToTimeZone
. E, finalmente, você precisa de um dia da semana em um fuso horário de uma data e hora passada: há uma LocalDayOfWeek
aula para isso. Portanto, o código se parece com o seguinte:
(new LocalDayOfWeek(
new AdjustedAccordingToTimeZone(
new Now(),
new TimeZoneFromString($_POST['timezone'])
)
))
->value();
Para saber mais sobre essa abordagem, dê uma olhada aqui .
date("N", $timestamp)
para obter1..7
valores a partir de segunda-feira. Nas versões anteriores, você pode usar o truque(date("w", $timestamp) + 6) % 7
para obter0..6
valores a partir de segunda-feira.