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

DateTime要使用 UNIX_TIMESTAMP进行初始化,请在开头使用@ :

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

请参阅PHP 手册中的复合格式strtodate(),了解以及也接受的格式DateTime()

于 2012-08-21T18:45:30.980 回答
0

检查DateTime::__construct()

DateTime 的构造函数不等待,unix timestamp而是使用格式的日期时间字符串Y-m-d H:i:s

你的第二种方法很好。

于 2012-08-21T18:40:26.463 回答