yeni DateTime boş DateTime örneğini döndürür

0 Cevap php

Bir hata kaynağını izleme, ben bu kod parçası geliştirme ve canlı sunucularında farklı davrandığını fark ettik:

<?php

ini_set('log_errors', FALSE);
ini_set('display_errors', TRUE);
error_reporting(E_ALL ^ E_STRICT);

var_dump(date_default_timezone_set('Europe/Madrid'));

try{
    $dt = new DateTime('2010-12-01');
    var_dump($dt);
}catch(Exception $e){
    var_dump($e);
}

Benim dev kutusu (PHP/5.3.0) Ben beklenen çıktıyı alıyorum:

bool(true)
object(DateTime)#1 (3) {
  ["date"]=>
  string(19) "2010-12-01 00:00:00"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(13) "Europe/Madrid"
}

Canlı sunucusu (PHP/5.2.14) ben boş bir nesne olsun:

bool(true)
object(DateTime)#1 (0) {
}

Zaten olağan şüpheliler (eksik varsayılan saat dilimi, non-parseable tarih dizesi ...) atılır ettik. Bu kod iki sunucularda aynı çıkışı var:

<?php

ini_set('log_errors', FALSE);
ini_set('display_errors', TRUE);
error_reporting(E_ALL ^ E_STRICT);

var_dump(date_default_timezone_set('Europe/Madrid'));

$ts = strtotime('2010-12-01');
var_dump($ts, date('r', $ts));

Baskılar:

bool(true)
int(1291158000)
string(31) "Wed, 01 Dec 2010 00:00:00 +0100"

Ben gerçekten belirgin bir şey eksik?

0 Cevap