0

理解できません:

$ts = strval( $this->get_start_date() ); // retrieve (int) timestamp from database

$time = new DateTime ( $ts ); 
    // throws an exception:  
    //'DateTime::__construct(): Failed to parse time string 
    //(1346284800) at position 7 (8): Unexpected character' 

$time = new DateTime();
$time->setTimestamp( $ts );
//works fine

ここで何が起こっているのか分かりますか?私は使用しています

PHP 5.3.10-1ubuntu3.2 with Suhosin-Patch (cli) (built: Jun 13 2012 17:19:58) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
4

2 に答える 2

3

DateTimeUNIX_TIMESTAMP で初期化するには、先頭に@を使用します。

$time = new DateTime ('@'.$this->get_start_date()); 

およびで受け入れられる形式については、PHP マニュアルの複合形式を参照してください。strtodate()DateTime()

于 2012-08-21T18:45:30.980 に答える
0

DateTime::__construct()を確認してください

DateTime のコンストラクターは a を待機しませんunix timestampが、形式を使用した日時文字列を待機しますY-m-d H:i:s

あなたの2番目のアプローチは問題ありません。

于 2012-08-21T18:40:26.463 に答える