私はoracleデータベースから日付時刻を取得するエンティティを持っています。 2099年12月31日になる場合もあります(実際には、実際には影響がありません)。 これはSymfonyで1999年12月31日に返されます。PHP + Doctrine ORM - 日時付きエンティティ> 2069
どうすれば修正できますか? PHP Datetimeを拡張する方法はありますか?あるいは、Doctrineのdatetime型を拡張しますか?
おそらく、twigフィルターで日付をチェックして、その< 2000の場合1000年を追加するスムーズな方法がありますか?
DateTime {#989 ▼
+"date": "1999-12-31 00:00:00.000000"
+"timezone_type": 3
+"timezone": "Europe/Berlin"
}
私は手動でto_char()を使用してフェッチできることは知っていますが、これはオプションではありません。
いくつかの情報:
- PHP 7.1.0
- symfonyの3.2.6
- 小枝
- のOracle 12gの
事前に感謝し、任意の言語のミスのため申し訳ありませんが、私はネイティブスピーカーではありません:-)
EDITは: 私のサーバーであるLinuxのホスト名3.10.0-229.14.1.el7.x86_64#1 SMP火:これは
/**
* @ORM\Column(name="VALIDTO" , type="datetime")
*/
protected $validTo;
日のためにEDIT 2私のEnitiyフィールド
ある 9月15日午前15時05分51秒UTC 2015 x86_64の
そして、私のPHPはすべてlib64にファイルを使用している、それは
Oracleから返される日付の形式を確認してください。通常、 'DD-MON-RR'(例えば' 31-DEC-99')のようなものになります。PHPはそれを2099年ではなく1999年と解釈します。 – timclutton
答えてくれてありがとうございます。クエリはdoctrineによって行われ、生の出力は表示されません:-( – WhiteRabbit