从日期/时间字符串中获取时间

时间:2011-08-05 11:54:29

标签: php datetime

我有一个存储在变量中的日期值。我需要将值的时间部分提取到单独的变量中,然后从中添加/减去时间。

日期变量设置为日期('YmdHis'),给出(例如)20110805124000 2011年8月5日,12:40:00

从值20110805124000(存储在变量$ fulltime中),我需要以12:40的格式存储时间(因此忽略年,月,日和秒并在小时和时间之间添加冒号)分钟)在一个名为$ shorttime的变量中。然后我需要在那个时间添加一些小时(例如+3小时会将$ shorttime变量中的值更改为15:40)。我需要添加的小时数存储在名为$ addtime的变量中,该值可能是负数。

这很容易实现吗?有人可以帮忙吗?

谢谢:)

4 个答案:

答案 0 :(得分:60)

$time = '2013-01-22 10:45:45';

echo $time = date("H:i:s",strtotime($time));

它会从datetime给出时间10:45:45

答案 1 :(得分:5)

<?PHP

$addhours = 3;

$date = DateTime::createFromFormat('YmdHis', '20110805124000');
$shorttime = $date->format("H:i");
$newdate = $date->add(DateInterval::createFromDateString($addhours . "hours"));
$newtime = $newdate->format("H:i");


echo $shorttime . "<br />";
echo $newtime . "<br />";
?>

供您参考:

http://www.php.net/manual/en/datetime.createfromformat.php

http://www.php.net/manual/en/dateinterval.createfromdatestring.php

答案 2 :(得分:0)

您好,我通常的做法是这样,也许有点长,但是对我有用...

            $DateIn  = new DateTime($In);
            $DateOut = new DateTime($Out);
            $HourOut = new DateTime($H_Out);   
            
            $FechaEntrada = $DateIn->format('d-m-Y');
            $FechaSalida  = $DateOut->format('d-m-Y');
            $HoraSalida   = $HourOut->format('H:i a');

我使用的指南是PHP DateTime::format()

答案 3 :(得分:-8)

对于PHP&lt; 5.0解决方案:

<?php
  $fulltime = '20110805124000';
  $addtime = -5;
  $time = substr($fulltime,8,2).":".substr($fulltime,10,2);
  $time = date("H:i",strtotime($time) + ($addtime*3600));
  echo $time;
?>