/ / DateTime nesprávny výsledok (potenciálna chyba?) - php, datetime

DateTime nesprávny výsledok (potenciálna chyba?) - php, datetime

na overenie ako chyba, môže to niekto otestovať pomocou svojho php:

$timeZone = new DateTimeZone("Europe/Berlin");
$startDate = new DateTime("first day this month 00:00:00", $timeZone);
echo $startDate->format("d.m.Y");

výsledok:

02.02.2013

Testoval som to s php 5.2 a PHP 5.3, s rovnakým výsledkom ....

Ako „riešenie“, aký je najlepší alternatívny spôsob, ako to urobiť?

$timeZone = new DateTimeZone("Europe/Berlin");
$startDateAlt = new DateTime("now", $timeZone);
$startDateAlt->setTimestamp(mktime(0, 0, 0, date("m") , 1, date("Y")));

odpovede:

0 pre odpoveď č. 1

Vynechali ste of, takže ho analyzuje ako niečo iné:

$timeZone = new DateTimeZone("Europe/Berlin");
$startDate = new DateTime("first day of this month 00:00:00", $timeZone);
echo $startDate->format("d.m.Y");

výnos

01.02.2013

Pokiaľ to z nejakého dôvodu nefunguje (stará php verzia sa zdá z vášho komentára), môžete vyskúšať toto? Trochu hack možno ...

$startDate = new DateTime();
$days = $startDate->format("d");
$days = $days - 1;
$startDate->modify("-{$day} days");
$startDate->setTime(0,0,0);
echo $startDate->format("d.m.Y");

0 pre odpoveď č. 2

Myslím, že chýbaš z v first day this month, skúste:

$timeZone = new DateTimeZone("Europe/Berlin");
$startDate = new DateTime("first day of this month 00:00:00", $timeZone);
echo $startDate->format("r") . PHP_EOL;