Autor Zpráva
ajda2
Profil
Dobrý den,
narazil jsem na podivné chování třídy DateTime.
Myslím si, že takto by se chovat neměla. Může mi někdo prosím objasnit, zda se jedná o bug, nebo něco nechápu?
https://gist.github.com/ajda2/8121368


<?php

$year = 2014;
$week = 1;
$timeZone = new DateTimeZone( 'Europe/Prague' );

$dateTime = new DateTime( 'now', $timeZone );
$dateTime->setISODate($year, $week);

echo 'Week: ' . $dateTime->format('W') . '<br>'; // output 1
echo 'Month: ' . $dateTime->format('m') . '<br>'; // output 12
echo 'Year: ' . $dateTime->format('Y') . '<br>'; // output 2013
?>
Medvídek
Profil
To vypadá, jako že bere week od pondělí, což je ještě prosinec 2013, protože rok 2014 začíná středou.

Pokud si vypíšu takto:

echo 'Week: ' . $dateTime->format('o-W') . '<br>'; // output 2014-01
ajda2
Profil
Medvídek:
Právě proto, že rok 2014 začíná středou, tak jsem na tento problém narazil.
Děkuji za upozornění na parametr formátu 'o'. To jsem přehlídl a v dokumentaci je toto přímo uvedeno.

Takže je to moje chyba. Děkuji Medvídku :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0