prendre le timestamp de la deniere fois qu'il était midi

Mammouth du PHP | 555 Messages

21 avr. 2006, 20:35

Bonjour,
Décidément on dirait que mes scripts m'omposent de revenir sur ce forum.
Je voudrait savoir comment pourrais avoir le timestamp de la derniere fois qu'il était midi ou minuit. Je m'explique:
S'il est 7h il faut prendre le time stamp de miniut du même jour
s'il est 17h il faut prendre le timestamp de midi du même jour
Si je n'ai pas été assez clair sur ce que je demande n'hésitez pas à me poser des questions.
Merci de votre aide sinon de votre lecture.
A+ et bon surf!!!!

ViPHP
ViPHP | 3607 Messages

21 avr. 2006, 20:47

Bon alors ça doit pas être très compliqué:
déja il faut tester si on est l'après midi ou le matin:
<?php
$date=date();
$midi=date("Y")."-".date("m")."-".date("d")." 12:00:00";
$minuit=date("Y")."-".date("m")."-".date("d")." 00:00:00";
if($date<$midi){
   $date=mktime($minuit);
} else {
   $date=mktime($midi);
}
?>
j'ai pas tester si ça marche, à toi de voir :wink:

Mammouth du PHP | 555 Messages

21 avr. 2006, 20:52

bravo, j'ai pas encore testé mais ton script est pas mal à part que t'as oublié un = dans le if ce qui aurait pu pauser pas mal de problèmes... :wink:
bon je vais tester ca et je vous dit si c'est bon!
A+ et bon surf!!!!

Mammouth du PHP | 555 Messages

21 avr. 2006, 21:28

en entrant uniquement ton script pour faire le test j'obtient
Warning: Wrong parameter count for date() in /var/www/free.fr/b/8/guerroyer/date.php on line 2
j'ai aussi fait la correctio ndu = manquant dans le if
Une solution???
A+ et bon surf!!!!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

21 avr. 2006, 21:48

d'après toi, que veut dire ce message d'erreur ?
Faut pas être fortiche en anglais pour ça
Wrong parameter count for date()
Tu as le liens vers les fonctions dans le code regarde un peu la syntaxe :wink:

En passant aucun rapport direct avec PHP5 !

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 555 Messages

21 avr. 2006, 22:05

alors pour php5 comment savoir dans quel php je code vu que j'ai appris en autoditacte et grâce à quelques tutos...

sinon pour date je crois que j'ai compris il prend peut être les - pour des moins et ca fout tout en l'air...
peut être que $midi=date("Y\m\d","12:00:00"); serait plus correcte no? j'ai toujours eu du mal avec cette fonction date...
A+ et bon surf!!!!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

21 avr. 2006, 22:12

alors pour php5 comment savoir dans quel php je code vu que j'ai appris en autoditacte et grâce à quelques tutos...
Pas mieux hein :wink:
Comment savoir... ben un phpinfo() dans la page et tu sauras tout de suite. Il faut toujours savoir sur quelle version on code sinon tu risque de développer un code fait pour PHP5 qui ne passera pas sous PHP4 ou autre et réciproquement

$minuit=date("Y")."-".date("m")."-".date("d")." 00:00:00";
Ok, tu as remarqué que les paramètres ne sont pas bons c'est un pas en avant :)

Maintenant sous quelle forme faut-il passer les paramètres à mktime() ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

21 avr. 2006, 22:14

alors pour savoir sur quelle version de php tu es, tu fait un script contenant ce qui suit:
<?php
phpinfo();
?>
et là, t'en aura plus qu'il n'en faut :wink:
pour ce qui est du script, oui c'est mieu comme la dernière, dsl j'ai écrit un peu vite... :oops:

Mammouth du PHP | 555 Messages

21 avr. 2006, 22:31

alors je suis en php 4.3.10
Ensuite à ce que j'ai compris il faut passer ces paramètres en secondes, minutes, heure, mois, jours, année c'est ca?
Donc je vais peut être encore dire une bêtise mais $midi devrait ressembler à ca no?
$midi=date("s, i, H","00, 00, 12");
A+ et bon surf!!!!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

21 avr. 2006, 22:44

alors je suis en php 4.3.10
ça c'est à retenir personnellement :wink:

ok les paramètres sont passés un par un mais pas dans date() mais mktime().

Date() va te servir pour retouver le "jour", le "mois" et "l'année" actuelle.

et mktime attends les paramètre (dans l'ordre):
heure, minutes, secondes, mois, jour, année

je te donne l'exemple (incomplet ;) ) du timestamp de midi a toi de remplacer les 3 paramètres par celles du jour.
mktime(12,0,0,ici mois en cours,ic jour en cours, ici année en cours);

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 555 Messages

21 avr. 2006, 22:51

alors ca peut être (je m'en sort pas de toutes ces fonctions de temps lol)

Code : Tout sélectionner

mktime(12,0,0,date(m),date(d),date(Y));
A+ et bon surf!!!!

Mammouth du PHP | 555 Messages

21 avr. 2006, 22:56

ca maarrcchee!!!!
Merci à tous de votre patience face à mon incompétence avec ces fonctions sur le temps mais j'ai fini par bidouiller ca
<?php
$date=time();
$midi=mktime(0,0,0,date("m"),date("d"),date("Y"));
if($date <= $midi)
{
   $date=mktime(0,0,0,date("m"),date("d"),date("Y"));
echo 'On est le matin';
} else
{
   $date=mktime(12,0,0,date("m"),date("d"),date("Y"));
echo 'On est après midi';
}
?>
A+ et bon surf!!!!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

21 avr. 2006, 23:02

face à mon incompétence avec ces fonctions sur le temps
Même pas puisque tu as trouvé quasi seul :wink:

sinon tu calcules déjà le timestamp dde midi pas besoin de le refaire dans la 1ère instruction du test. une simple réaffectationsuffit:
$date = $midi;
N'oublis pas le [Résolu] :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 555 Messages

22 avr. 2006, 09:26

oué merci beaucoup comme ca le code est propre et optimisé, merci à tous de votre patience je met résolu.
A+ et bon surf!!!!