Page 1 sur 1

timestamp=0 ne renvoie pas minuit ?!

Posté : 16 avr. 2014, 18:10
par Litchii
Bonjour

Dans n'importe quelle doc on peut lire que le "timestamp" correspond au nombre de secondes écoulées depuis le 1er Janvier 1970 Minuit.
Ok.

Alors pourquoi lorsque j'utilise n'importe quel convertisseur avec "timestamp = 0" il me renvoie au 1er Janvier 1970, 01'00"00 ?!
Minuit et 1h du mat' c'est bien différent non ?

Qu'ai-je mal compris ?
Ou alors c'est un problème de fuseau horaire adapté pour GMT+1 au lieu de GMT ?

Re: timestamp=0 ne renvoie pas minuit ?!

Posté : 16 avr. 2014, 20:45
par xTG
Le timestamp 0 renvoie le 1er janvier 1970 00'00"00 GMT. :)
Lorsque tu configures ton serveur en GMT+1 il renvoie donc 01'00"00.

Re: timestamp=0 ne renvoie pas minuit ?!

Posté : 16 avr. 2014, 21:56
par Litchii
Merde ! C'est pas pratique ça ! ^^

Merci en tout cas pour ta réponse !

Re: timestamp=0 ne renvoie pas minuit ?!

Posté : 17 avr. 2014, 15:30
par moogli
Merde ! C'est pas pratique ça ! ^^

Merci en tout cas pour ta réponse !
ben c'est la définition d'un timestamp : nombre de secondes depuis "l'an zéro unix" (1er janvier 1970 00'00"00 GMT).

tu peux utiliser la fonction date(par exemple) pour avoir ce timestamp pour une date précise.


@+

Re: timestamp=0 ne renvoie pas minuit ?!

Posté : 18 avr. 2014, 10:43
par Litchii
Oui oui je comprends, c'est juste que pour mon calcul où je comptabilise des heures, c'était plus pratique qu'un timestamp=0 me revoit 0h au lieu de 1h ! Du coup je suis obligé de mettre -3600 à tout mes timestamp pour compter le nombres d'heure faites par jour. ^^

Là si la personne bosse de 8h à 12h ça me compte 5h de boulot au lieu de 4h ! :roll:

Re: timestamp=0 ne renvoie pas minuit ?!

Posté : 18 avr. 2014, 10:47
par Litchii
J'oubliais, effectivement je peu utiliser date() pour avoir un calcul d'heure précis, mais après pour les minutes c'est pas pratique à miltiplier par un taux horaire.

Si la personne bosse 4h30, il faut faire 4.5 * le taux horaire et non pas 4.30

Donc moi je prenais le timestamp de fin - le timestamp de début divisé par 3600 pour ramener en heures, je multipliais par le taux horaire et j'avais le prix à la minute près ! C'était simple sauf que ça me mettait une heure de trop à cause du GMT+1 ^^

Re: timestamp=0 ne renvoie pas minuit ?!

Posté : 18 avr. 2014, 15:18
par moogli
:mrgreen: :mrgreen:
Modération :
Puisque ta question semble résolue, je l'indique en cliquant sur le bouton "Mettre le sujet en tant que Résolu" pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.

Tu peux réaliser cette opération toi-même en cliquant sur le bouton vert situé en haut de la page à côté du titre, si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

Re: timestamp=0 ne renvoie pas minuit ?!

Posté : 18 avr. 2014, 15:28
par yann18
J'oubliais, effectivement je peu utiliser date() pour avoir un calcul d'heure précis, mais après pour les minutes c'est pas pratique à miltiplier par un taux horaire.

Si la personne bosse 4h30, il faut faire 4.5 * le taux horaire et non pas 4.30

Donc moi je prenais le timestamp de fin - le timestamp de début divisé par 3600 pour ramener en heures, je multipliais par le taux horaire et j'avais le prix à la minute près ! C'était simple sauf que ça me mettait une heure de trop à cause du GMT+1 ^^
toute date en php est rattachée au fuseau horaire(timezone) défini dans la configuration apache(date.timezone="Europe/Paris"). Donc tous les calculs sur les dates prendront toujours en compte la timezone et je ne comprends pas comment tu dois gérer à la main le décalage horaire alors cela n'est pas de ton ressort en tant que dev.

Par exemple avec DateTime de php, on peut effectuer un calcul sur le nombre d'heures travaillées , de 8h à 12h:

$date_debut = new DateTime("2014-04-18 07:00:00");
$date_fin = new DateTime("2014-04-18 12:00:00");

//difference entre de 2 dates exprimée en secondes
$date_diff = $date_fin->format('U') - $date_debut->format('U');

//nombre d'heures travaillées en heures
$heures_travaillees = $date_diff/3600;//donnera 5h