Page 1 sur 1
incohérence bizzar bizzar avec time()
Posté : 25 avr. 2012, 11:47
par kimpak
Bonjour tout le monde,
Depuis quelque jour je suis bloqué sur un bout de code dont ci-dessous une copie :
Code : Tout sélectionner
<?php
$date1 = date('Y-m-j H:m:s', time());
function date_to_timestamp($string) {
list($date, $time) = explode(' ', $string);
list($year, $month, $day) = explode('-', $date);
list($hour, $minute, $second) = explode(':', $time);
$timestamp = mktime($hour, $minute, $second, $month, $day, $year);
return $timestamp;
}
echo "test1 : ".date_to_timestamp($date1)."<br />"; //affiche 1335344645
echo "real time :".time()."<br />"; //affiche 1335347285
?>
Donc voilà mon problème comment ce fait'il que j'ai deux valeurs de timestamp différentent en affichant directement la valeur avec time() et convertisant une date et heure en timestamp?
Il y a peut être une décalage en micro seconde mais la j'ai des heurs de décalage.
Si quelqu'un pourrais m'expliquer ce qui se passe ou qui à une autre solution pour convertir une date et heure en timestamp.
Merci d'avance

Re: incohérence bizzar bizzar avec time()
Posté : 25 avr. 2012, 12:16
par xTG
Différence heure d'été et heure d'hiver ? Regardes le dernier paramètre de la fonction mktime().
Re: incohérence bizzar bizzar avec time()
Posté : 25 avr. 2012, 12:26
par dix2
c'est certainement une histoire de cache ...
Re: incohérence bizzar bizzar avec time()
Posté : 25 avr. 2012, 12:53
par kimpak
ok, Merci, je vais regarder pour le décalage horaire. Par contre je ne penses pas que ça soit le cache. j'ai essayé sur deux machines avec la suppression de cache.
Re: incohérence bizzar bizzar avec time()
Posté : 25 avr. 2012, 13:18
par kimpak
j'ai modifier mon code mais rien ne change.
Code : Tout sélectionner
<?php
header("Cache-Control: no-cache, must-revalidate");
date_default_timezone_set('Africa/Nairobi');
$date1 = date('Y-m-j H:m:s', time());
function date_to_timestamp($string) {
list($date, $time) = explode(' ', $string);
list($year, $month, $day) = explode('-', $date);
list($hour, $minute, $second) = explode(':', $time);
$timestamp = mktime($hour, $minute, $second, $month, $day, $year);
return $timestamp;
}
echo "test1 : ".date_to_timestamp($date1)."<br />"; //affiche 1335344645
echo "real time :".time(); //affiche 1335347285
$var1 = time();
$var2 = date_to_timestamp($date1);
echo "<br />différence : ".($var1-$var2);
?>
en plus j'ai une différence de 120 vers xxx secondes
Re: incohérence bizzar bizzar avec time()
Posté : 25 avr. 2012, 13:35
par Mazarini
N'utilise qu'un seul time() => pas d'écart
Compare des dates lisible => écart plus compréhensible (plus lisible) ?
<?PHP
$time1 = time();
$date1 = date('Y-m-j H:m:s', $time1);
$time2 = date_to_timestamp($date1);
$date2 = date('Y-m-j H:m:s', $time2);
echo $time1,' / ',$date1,'<br>';
echo $time2,' / ',$date2,'<br>';
?>
Re: incohérence bizzar bizzar avec time()
Posté : 25 avr. 2012, 13:50
par kimpak
merci, mais je ne m'en sort pas encore! je ne comprendre pas.
Voilà ce qui s'affiche en utilisant ton bout de code :
1335354428 / 2012-04-25 14:04:08
1335351848 / 2012-04-25 14:04:08
avec ou sans la définition du timezone.
Code : Tout sélectionner
function date_to_timestamp($string) {
list($date, $time) = explode(' ', $string);
list($year, $month, $day) = explode('-', $date);
list($hour, $minute, $second) = explode(':', $time);
$timestamp = mktime($hour, $minute, $second, $month, $day, $year);
return $timestamp;
}
$time1 = time();
$date1 = date('Y-m-j H:m:s', $time1);
$time2 = date_to_timestamp($date1);
$date2 = date('Y-m-j H:m:s', $time2);
echo $time1,' / ',$date1,'<br>';
echo $time2,' / ',$date2,'<br>';
?>
J'ai une grande différence de 2000s dans le timestamp. Cela va être difficile de faire mes calculs.
Re: incohérence bizzar bizzar avec time()
Posté : 25 avr. 2012, 14:16
par Mazarini
Lol, les minutes c'est i et pas m
m c'est pour les mois.
Re: incohérence bizzar bizzar avec time()
Posté : 25 avr. 2012, 14:32
par kimpak
Franchement, toute une matinée perdu pour une question de "i" et de "m".
Merci
Mazarini.
Problème résolue.
Yeppa