update page now

DateTimeImmutable::setISODate

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setISODateDefine a data ISO

Descrição

#[\NoDiscard]
public DateTimeImmutable::setISODate(int $year, int $week, int $dayOfWeek = 1): DateTimeImmutable

Retorna um novo objeto DateTimeImmutable com a data configurada de acordo com o padrão ISO 8601 - usa semanas e deslocamentos de dias no lugar de datas específicas.

Parâmetros

year

Ano da data.

week

Semana da data.

dayOfWeek

Posição em relação ao primeiro dia da semana.

Valor Retornado

Retorna um novo objeto DateTimeImmutable com os dados modificados.

Exemplos

Exemplo #1 Exemplo da função DateTimeImmutable::setISODate()

Estilo orientado a objetos

<?php

$date
= new DateTimeImmutable();

$newDate = $date->setISODate(2008, 2);
echo
$newDate->format('Y-m-d') . "\n";

$newDate = $date->setISODate(2008, 2, 7);
echo
$newDate->format('Y-m-d') . "\n";

O exemplo acima produzirá:

2008-01-07
2008-01-13

Estilo procedural

<?php

$date
= date_create();

date_isodate_set($date, 2008, 2);
echo
date_format($date, 'Y-m-d') . "\n";

date_isodate_set($date, 2008, 2, 7);
echo
date_format($date, 'Y-m-d') . "\n";

O exemplo acima produzirá:

2008-01-07
2008-01-13

Exemplo #2 Valores que excedem os limites são transferidos para a escala imediatamente superior

<?php

$date
= new DateTimeImmutable();

$newDate = $date->setISODate(2008, 2, 7);
echo
$newDate->format('Y-m-d') . "\n";

$newDate = $date->setISODate(2008, 2, 8);
echo
$newDate->format('Y-m-d') . "\n";

$newDate = $date->setISODate(2008, 53, 7);
echo
$newDate->format('Y-m-d') . "\n";

O exemplo acima produzirá:

2008-01-13
2008-01-14
2009-01-04

Exemplo #3 Para encontrar o mês em que uma semana se localiza

<?php

$date
= new DateTimeImmutable();
$newDate = $date->setISODate(2008, 14);
echo
$newDate->format('n');

O exemplo acima produzirá:

3

Veja Também

adicionar nota

Notas de Usuários 1 note

up
0
samuele dot catuzzi at gmail dot com
1 day ago
note that giving a week out of range will produce a date for a different year

example:
<?php
$date = new DateTimeImmutable();

$newDate = $date->setISODate(2026, 53);
echo $newDate->format('Y-m-d') . "\n";
// will print "2026-12-28"  (2026 has 53 weeks)

$newDate = $date->setISODate(2026, 54);
echo $newDate->format('Y-m-d') . "\n";
// will print 2027-01-04 which is the 1st week of 2027
?>
To Top