web-dev-qa-db-fra.com

Calcul du temps en php (ajouter 10 heures)?

J'ai le temps:

$today = time();
$date = date('h:i:s A', strtotime($today));

si l'heure actuelle est "1:00:00 am", comment ajouter 10 heures supplémentaires pour devenir 11:00:00 am ??

21
myphpsql00

strtotime() vous donne un nombre qui représente un temps en secondes. Pour l'incrémenter, ajoutez le nombre de secondes correspondant que vous souhaitez ajouter. 10 heures = 60 * 60 * 10 = 36000, alors ...

$date = date('h:i:s A', strtotime($today)+36000); // $today is today date

Edit: je supposais que vous aviez une chaîne de temps en $ aujourd'hui - si vous utilisez simplement l'heure actuelle, encore plus simple:

$date = date('h:i:s A', time()+36000); // time() returns a time in seconds already
49
Amber
$tz = new DateTimeZone('Europe/London');
$date = new DateTime($today, $tz);
$date->modify('+10 hours');
// use $date->format() to outputs the result.

voir DateTime Class (PHP 5> = 5.2.0)

20
user180100

Vous pouvez simplement utiliser la classe DateTime , OOP Style.

<?php
$date = new DateTime('1:00:00');
$date->add(new DateInterval('PT10H'));
echo $date->format('H:i:s a'); //"prints" 11:00:00 a.m
6
Shankar Damodaran

$date = date('h:i:s A', strtotime($today . ' + 10 hours'));

(non testé)

6
jensgram
$date = date('h:i:s A', strtotime($today . " +10 hours"));
3
Marek Karbarz

Code complet qui montre maintenant et 10 minutes ajoutées .....

$nowtime = date("Y-m-d H:i:s");
echo $nowtime;
$date = date('Y-m-d H:i:s', strtotime($nowtime . ' + 10 minute'));
echo "<br>".$date;
2
Mikeys4u

Pour augmenter ou diminuer le temps en utilisant strtotime vous pouvez utiliser Format relatif dans le premier argument.

Dans votre cas pour augmenter le heure actuelle de 10 heures:

$date = date('h:i:s A', strtotime('+10 hours'));

Si vous devez appliquer la modification à un autre horodatage, le deuxième argument peut être spécifié.

Remarque:

L'utilisation de cette fonction pour les opérations mathématiques n'est pas recommandée. Il est préférable d'utiliser DateTime::add() et DateTime :: sub () dans PHP 5.3 et versions ultérieures, ou DateTime :: modify () dans = PHP 5.2.

Donc, la manière recommandée depuis PHP 5.3:

$dt = new DateTime(); // assuming we need to add to the current time
$dt->add(new DateInterval('PT10H'));
$date = $dt->format('h:i:s A');

ou en utilisant des alias:

$dt = date_create(); // assuming we need to add to the current time
date_add($dt, date_interval_create_from_date_string('10 hours')); 
$date = date_format($dt, 'h:i:s A');

Dans tous les cas, le fuseau horaire par défaut sera utilisé sauf si un fuseau horaire est spécifié.

0
Nik