Peut-on additionner des heures/minutes en PHP ? - PHP - Programmation
Marsh Posté le 09-04-2005 à 10:07:36
Oui, si tu aggis sur le timestamp il y a pas de problemes
Marsh Posté le 09-04-2005 à 10:09:33
Les heures sont au format HH:MM, tu proposerais donc que je créé des timestamp pour ajouter des minutes puis les reconvertir au format HH:MM ?
Marsh Posté le 09-04-2005 à 10:57:41
En general il est preferable en php de travailler seulement avec des timestamp (et les stoquer en tant que tels dans la bdd), et au dernier moment avant de les afficher de les transformer en HH:MM
Marsh Posté le 09-04-2005 à 11:05:17
C'est un fichier texte que je lis, je récupère les heures sous ce format, et je dois leur ajouter x minute avant l'insertion dans la base. C'est pour ça que je doute de l'intérêt de passer par des TIMESTAMP en fait.
Marsh Posté le 09-04-2005 à 11:07:15
bah si tu dois leur ahouter des minutes avant de l'insérer dans la db, y a justement tout intérêt à prendre des timestamp. Tu peux même faire l'addition dans l'insertion.
Marsh Posté le 09-04-2005 à 11:25:44
Après c'est un problème de type de cham. Comme c'est pour gérer un emploi du temps sur une semaine, on a décidé d'utiliser un type TIME et pas un TIMESTAMP qui fait entrer en compte la date, chose qui n'a pas de sens sur une semaine.
Marsh Posté le 09-04-2005 à 11:42:13
et bien prend des time alors au lieu des timestamp, ca marche aussi.
Marsh Posté le 09-04-2005 à 11:46:04
Ca donnerait quoi au niveau de la requête ?
...VALUES('12:12'+75,...
Edit :
'12:12'+75 donne 00:00:00
'15:42+75' donne 15:42:00
'15:42+00:75:00' donne 15:42
'15:53'+00:75:00 erreur de syntaxe
'15:42:00'+'01:25:00' donne 00:00:16
Marsh Posté le 09-04-2005 à 14:51:16
ReplyMarsh Posté le 09-04-2005 à 15:09:00
gizmo a écrit : values(time '15:42' + interval '75 minutes') |
time '15:42' + interval '75 minutes' : syntaxe
time '15:42' + interval '75 minute' : syntaxe
time '15:42' + interval 75 minute : passe mais retourne NULL
time '15:42' + interval '00:75' hour_minute : passe mais retourne NULL
time '15:42' + interval '01:15' hour_minute : passe mais retourne NULL
Sans le time c'est pareil.
Je suis allé là : http://www.databasejournal.com/fea [...] _2190421_1
Les DATE_ADD ne fonctionnent apparemment pas car ils retournent des dates.
Hermes, lis tout le topic, le TIMESTAMP n'est pas un type approprié dans le projet.
Marsh Posté le 09-04-2005 à 15:16:22
Allons y gaiement.
TIME_FORMAT( DATE_ADD( '15:42' + INTERVAL '01:00'
HOUR_MINUTE ) , '%H:%i' )
Syntaxe toujours.
Marsh Posté le 09-04-2005 à 15:27:21
Bon plus simple, en lisant le manuel :
ADDTIME('12:55','01:55')
Marsh Posté le 09-04-2005 à 15:38:02
tu travailles dans quel sgdb?
EDIT: ah oui, mysql, j'aurais du me douter qu'ils ne respectaient pas le standard
Marsh Posté le 09-04-2005 à 15:46:17
Oui, c'est imposé.
Par contre, il faudra toujours que je formate mon 75 minutes en 1:15 parce qu'il ne veut évidemment pas de ADDTIME('12:55',10 minute) ni de ADDTIME('07:57',MAKETIME(0,75,0))
Apparemment, je suis quand même parti pour "refaire" une fonction pour ça.
En bref, je me demande s'il vaut mieux que je garde ma fonction qui me retourne mon heure prête à être injectée ou s'il faut que j'utilise le ADDTIME en utilisant une fonction (que je dois faire apparemment) qui tranforme les minutes en hh:mm.
function CalculeHeure($Minutes)
{
$NH['Heure']=intval($Minutes/60);
$NH['Minutes']=$Minutes%60;
return $NH['Heure'].":".$NH['Minutes'];
}
Marsh Posté le 09-04-2005 à 10:01:52
Bonjour,
Je dois ajouter x minutes à une heure donnée et j'aimerais savoir s'il existe des fonctions permettant de le faire facilement en PHP (je ne parle pas de mysql). Pour le moment, j'ai fait cette fonction qui marche bien :
Je suis en train de voir que j'aurais pu faire un explode mais bon, c'est pas dramatique.