Método setISODate da classe DateTime
O método setISODate define a data em um objeto DateTime de acordo com o padrão ISO 8601, usando o número da semana e o dia da semana. O primeiro parâmetro é o ano, o segundo é o número da semana, o terceiro é o dia da semana (de 1 a 7, onde 1 é segunda-feira).
Sintaxe
$datetime->setISODate(year, week, day);
Exemplo
Vamos definir a data para a 10ª semana de 2023, quinta-feira (dia da semana 4):
<?php
$date = new DateTime();
$date->setISODate(2023, 10, 4);
echo $date->format('Y-m-d');
?>
Resultado da execução do código:
'2023-03-09'
Exemplo
Vamos definir a data apenas pelo número da semana (o dia da semana será segunda-feira por padrão):
<?php
$date = new DateTime();
$date->setISODate(2023, 10);
echo $date->format('Y-m-d');
?>
Resultado da execução do código:
'2023-03-06'