web-dev-qa-db-fra.com

Obtenir l'heure à partir d'une chaîne de date / heure

J'ai une valeur de date stockée dans une variable. J'ai besoin d'extraire la partie temps de la valeur dans une variable distincte, puis d'y ajouter/soustraire du temps.

La variable de date est définie avec la date ('YmdHis'), donnant (par exemple) 20110805124000 pour le 5 août 2011, 12:40:00

A partir de la valeur 20110805124000 (qui est stockée dans la variable $ fulltime), j'ai besoin de stocker l'heure uniquement au format 12:40 (donc en ignorant l'année, le mois, le jour et les secondes et en ajoutant les deux points entre l'heure et la minute) dans une variable appelée $ shorttime. J'ai ensuite besoin d'ajouter un certain nombre d'heures à cette heure (ainsi, par exemple, +3 heures changeraient la valeur de la variable $ shorttime à 15:40). Le nombre d'heures que j'ai besoin d'ajouter est stocké dans une variable appelée $ addtime, et cette valeur peut être un nombre négatif.

Est-ce facilement réalisable? Quelqu'un pourrait-il aider?

Merci :)

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

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

Cela vous donnera le temps 10:45:45 à partir de datetime.

63
Bindiya Patoliya
<?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 />";
?>

pour votre référence:

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

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

5
Saad Imran.