5.3未満のバージョンのタイムスタンプからDateTimeを作成するにはどうすればよいですか?
5.3では、次のようになります。
$date = DateTime::createFromFormat('U', $timeStamp);
DateTimeコンストラクターには文字列が必要ですが、これは私にとってはうまくいきませんでした
$date = new DateTime("@$timeStamp");
PHP 5> = 5.3.0
$date = new DateTime();
$date->setTimestamp($timeStamp);
編集:正しい追加PHP setTimestamp
のバージョン
前の回答のように日付だけでなく、日付と時刻が必要だと仮定します。
$dtStr = date("c", $timeStamp);
$date = new DateTime($dtStr);
しかし、それをしなければならないのはかなりばかげているようです。
$ timeStamp変数が空のため、機能していません。 DateTimeを作成する直前に$ timeStampの値をエコーしてみてください。これを実行する場合:
new DateTime('@2345234');
エラーは発生しません。ただし、実行する場合:
new DateTime('@');
あなたが言った正確なエラーを生成します。デバッグを行い、$ timeStampが空である理由を調べる必要があります。
以下の作品:
$dateString = date('Ymd', $timeStamp);
$date = new DateTime($dateString);