PHP 的 DateTime::format('U') 返回从现在开始的时间戳,而不是从指定日期开始的时间戳


PHP's DateTime::format('U') returns timestamp from now, not from specified date?

我有一个DateTime对象,用特定的日期初始化:

$inputString = '06102013';
$myDate = DateTime::createFromFormat('mdY', $inputString);

现在我想以不同的格式分发它,使用

$myFormat = 'd.m.Y';
$myDate->format($myFormat);

这适用于所有格式,直到我说:

$myFormat = 'U';

然后$myDate->format('U');仅包含当前时间戳(调用函数的实际时间)。但是,如何从原始输入日期获取时间戳,$inputString在我的情况下呢?

如果这很重要:我使用的是 PHP 5.3,但计划很快升级。

编辑:忘了提

$myDate->getTimestamp();

还返回调用时间,而不是创建DateTime对象的原始时间!

时间戳

小时、分钟、秒部分将引用当前时间,是的,因为您的输入时间戳不包含此信息。PHP 在实例化点填充当前时间的空白。但是,时间戳的日、月和年部分表示您在我测试的任何 PHP 版本中的输入(见 http://3v4l.org/2Or6T)。