Probleme de Timestamp

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme de Timestamp

par goeb » 16 mars 2005, 19:14

y aurait pas un passage à l'heure d'hiver en octobre, qui expliquerait le decalage d'une heure ?

de telle sorte que :

01/11/2005 00:00:00 = 01/10/2005 00:00:00 + 31 jours - 1 heure

par Elie » 16 mars 2005, 13:25

Bon, je vous monter mon code ca ira plus vite !
	if(empty($_GET['time'])) {
		$time_mois = mktime(0,0,0,date('n'),1,date('Y'));
	} else {
		$time_mois = mktime(0,0,0,date('n',$_GET['time']),1,date('Y',$_GET['time']));
	}
	$liste_mois = array("Janvier","Févirer","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Décembre");
	$mois = date('n',$time_mois);								// Numero du mois actuel
	$mois_commence = date('w',$time_mois);						// Numéro du jour du premier jour du mois
	if($mois_commence == 0) $mois_commence = 7;					// Si le premier jour est un dimanche
	$nb_jour_mois = date('t',$time_mois);						// Nombre de jour dans le mois
	$nb_jour_avec_le_debut = $nb_jour_mois + $mois_commence;	// Nombre de jour incluant les jours precendant
	$nb_ligne = ceil($nb_jour_avec_le_debut/7);					// Nombre de ligne contenant les jours !
	$debut_time = $time_mois - (($mois_commence-1)*86400);		// Timestamp du premier jour
	$time_suivant = $time_mois + ($nb_jour_mois*86400); 		// Timestamp du premier jour du mois suivant
	$time_precedant = $time_mois - 1;							// Dernier jour du mois precedent à 23:59:59
	?> 

par sadeq » 15 mars 2005, 15:31

La meilleure façon est d'utiliser la fonction :
variant variant_date_from_timestamp ( int timestamp )
Disponible sous PHP5.

Exemple :
echo  variant_date_from_timestamp  (mktime(0,0,0,10,01,2005)+(31*24 + 1)*60*60);
Ce code affiche :
01/11/2005 00:00:00

par flitox » 15 mars 2005, 15:01

Baaaaah je vois que ça :
<?php
$timestamp = (31 * 86400);
$d = getdate(mktime(1,0,0,10,1,2005) + $timestamp);

echo $d['mday']."/".$d['mon']."/".$d['year']." ".$d['hours'].":".$d['minutes'].":".$d['seconds']."<br /><br />";
//Affiche 1/11/2005 0:0:0
?>
Bon ok c'est de la bidouille :roll: :lol:

par Elie » 15 mars 2005, 14:27

En fait je veux que m'on exemple marche :)
C'est surtout ca... Je sais comment recuperer le timestamp de novembre :)

par flitox » 15 mars 2005, 11:06

J'ai tout simplement fait ça moi :
<?php
$d = getdate(mktime(0,0,0,11,1,2005));

echo $d['mday']."/".$d['mon']."/".$d['year']." ".$d['hours'].":".$d['minutes'].":".$d['seconds']."<br /><br />";
//Affiche 1/11/2005 0:0:0

echo $d[0];
//Affiche 1130799600
?>
En plus en numéro de mois tu mets 10 alors que tu veux Novembre (11) ;)

Probleme de Timestamp

par Elie » 15 mars 2005, 04:19

Voila le topo :)

Je veux affiche le timestamp du 01/11/2005 00:00:00

Logiquement ca devrait donner :
mktime(0,0,0,10,1,2005) + (31 * 86400)
Hors j'obtient 31/10/2005 23:00:00

pourquoi ? :)