<?php include("avantcorps.php") ; echo ' '; $date_deb = $_POST['date_deb']; $date_fin = $_POST['date_fin']; $date_debunix = strtotime($date_deb)+43200; $date_finunix = strtotime($date_fin)+43200; for($aunix = $date_debunix; $aunix <= $date_finunix+3600; $aunix = $aunix+86400) { $a = date('Y-m-d H:i', $aunix); echo $a.' = '.$aunix.' '; } echo ' </html> '; ?>
<?php include("avantcorps.php") ; echo ' '; $date_deb = $_POST['date_deb']; $date_fin = $_POST['date_fin']; $date_debunix = strtotime($date_deb); $date_finunix = strtotime($date_fin); for($aunix = $date_debunix; $aunix <= $date_finunix; $aunix = $aunix+86400) { $a = date('Y-m-d H:i', $aunix); echo $a.' = '.$aunix.' '; } echo ' </html> '; ?>
<?php date_default_timezone_set('Europe/Paris'); $debut = strtotime('10/31/2010 01:00'); $fin = strtotime('10/31/2010 04:00'); $diff = $fin - $debut; echo $diff; ?>
<?php function calculDate($deb, $fin) { $tableauDate = array(); $dateDeb = new DateTime($deb); while($deb <= $fin) { $tableauDate[] = $deb; $dateDeb -> modify('+ 1 day'); $deb = $dateDeb -> format('Y-m-d'); } return $tableauDate; } //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- if(isset($_POST['btn'])) { echo implode(' ', calculDate($_POST['dateDeb'], $_POST['dateFin'])); } else { ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <script type="text/javascript"></script> <style type="text/css"></style> </head> <form name="date" method="post" action=""> Date début (AAAA-MM-JJ) Date fin (AAAA-MM-JJ) </form> </html> <?php } ?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionFatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function.
<?php date_default_timezone_set('Europe/Paris'); $deb_date = '2010-10-01'; $deb = strtotime($deb_date); $fin = strtotime('2010-11-30'); $curr = $deb; for ($i = 1; $curr < $fin; $i++) { echo date('d-m-Y', $curr), ' '; $curr = strtotime($deb_date.' +'.$i.'days'); } ?>
<?php $deb = '2010-10-01'; $fin = '2010-11-30'; // On isntancie un nouvel objet DateTime, avec la date de début et le fuseau horaire CET. $d = new DateTime($deb , new DateTimeZone('Europe/Paris')); // On crée un objet DateInterval qui correspond à un intervalle d'une journée // P1D : P pour Period, 1D pour 1 day. // Cf la liste des paramètres : http://fr2.php.net/manual/fr/dateinterval.construct.php $di = new DateInterval('P1D'); //On boucle jusqu'à ce que la date de $d soit celle de $fin while ($d -> format('Y-m-d') != $fin) { echo $d -> format('Y-m-d'), ' '; // On ajoute l'intervalle de 1 jour $d -> add($di); } // On affiche la dernière date echo $d -> format('Y-m-d'); ?>
DateTime::__construct(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function.
Conclusion : il faut TOUJOURS se préoccuper du fuseau horaire, sinon PHP ne sait pas comment calculer les heures.Faux, puisque le paramètre "timezone" du constructeur "DateTime" est optionnel. Par défaut, celui du php.ini est pris en compte.
Au passage à l'heure d'hiver en 2010, le 30 octobre, à 3h, il sera de nouveau 2H. La journée du 30 octobre ne compte pas 24h, mais 25. Donc si tu ajoutes 24h à minuit, il est au final... 23h, toujours le 30 octobre 2010. Donc, tu as 2 fois la même date.
for($aunix = $date_debunix; $aunix <= $date_finunix; $aunix = $aunix+86400)
Donc, pas grand chose à voir avec un problème de code.
Faux, puisque le paramètre "timezone" du constructeur "DateTime" est optionnel. Par défaut, celui du php.ini est pris en compte.
Conclusion : il faut TOUJOURS se préoccuper du fuseau horaire, sinon PHP ne sait pas comment calculer les heures.
Petite rectification : Le changement d'heure est le 31 à 3 heures.