web-dev-qa-db-ja.com

PHP <5.3のタイムスタンプからDateTimeを作成する

5.3未満のバージョンのタイムスタンプからDateTimeを作成するにはどうすればよいですか?

5.3では、次のようになります。

$date = DateTime::createFromFormat('U', $timeStamp);

DateTimeコンストラクターには文字列が必要ですが、これは私にとってはうまくいきませんでした

$date = new DateTime("@$timeStamp");
58
Yarin

PHP 5> = 5.3.0

$date = new DateTime();
$date->setTimestamp($timeStamp);

編集:正しい追加PHP setTimestampのバージョン

44
Dawid Ohia

前の回答のように日付だけでなく、日付と時刻が必要だと仮定します。

$dtStr = date("c", $timeStamp);
$date = new DateTime($dtStr);

しかし、それをしなければならないのはかなりばかげているようです。

31
Barry Simpson

$ timeStamp変数が空のため、機能していません。 DateTimeを作成する直前に$ timeStampの値をエコーし​​てみてください。これを実行する場合:

new DateTime('@2345234');

エラーは発生しません。ただし、実行する場合:

new DateTime('@');

あなたが言った正確なエラーを生成します。デバッグを行い、$ timeStampが空である理由を調べる必要があります。

14
Jonah

以下の作品:

$dateString = date('Ymd', $timeStamp);
$date = new DateTime($dateString);
3
Yarin