从日期时间中获取时间

时间:2013-12-25 09:20:13

标签: php datetime

尝试从日期时间以24小时格式获取时间,但无效:

$date=date_create("now");
date_add($date,date_interval_create_from_date_string('3 hours'));
$finalDate = date_format($date,"Y-m-d H:i:s");

// $finalDate is "2013-12-25 15:06:45"

尝试以下方法:

date('H', $finalDate)); // getting 02
date('G', $finalDate)); // getting 02
$finalDate->hours); // getting nothing
date_format($finalDate,"H")); // getting nothing

阅读本网站上的所有帖子,没有解决任何问题......

4 个答案:

答案 0 :(得分:3)

$date已经是DateTime对象。

您需要做的就是:

$hour = date_format($date, 'H');

$hour = $date->format('H');

PS: 建议采用面向对象的风格而不是程序风格。

答案 1 :(得分:2)

使用DateTime和“对象语法”:

<?php
    $date = new DateTime();
    $date->modify('+3 hours');

    echo $date->format('H');
?>

答案 2 :(得分:1)

请使用较新的DateTime对象。我还添加了如何查看两个不同DateTime对象之间差异的注释变体。

$date1 = new DateTime('2013-12-15 12:00:00');
$date2 = new DateTime('2013-12-25 13:30:30');

//$interval  = $date1->diff($date2);
//$diff      = $interval->format('%d');
//echo $diff;

echo $date1->format('H');

您可以使用$date->add()的PDO变体来编写您做得更干净的内容:)

答案 3 :(得分:0)

试试这个:

$timeStr=strtotime($finalDate); 

echo date('H', $timeStr);