Script qui fonctionne en PHP5, pas en PHP4... [Résolu]

seb841 4 Messages postés mardi 8 décembre 2009Date d'inscription 10 décembre 2009 Dernière intervention - 9 déc. 2009 à 17:56 - Dernière réponse : kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention
- 10 déc. 2009 à 19:35
Bonjour,

J'ai un petit soucis, j'ai une date recuperée au format AAAA-MM-JJ.

J'ai ensuite ce petit script qui me permet de récuperer le nom du jour (lundi , mardi ...) selon la date :

function nom_jour($date) 
{
 
$jour_semaine = array(1=>"Lundi", 2=>"Mardi", 3=>"Mercredi", 4=>"Jeudi", 5=>"Vendredi", 6=>"Samedi", 7=>"Dimanche");
 
list($annee, $mois, $jour) = explode ("-", $date);
 
$timestamp = mktime(0,0,0, date($mois), date($jour), date($annee));
$njour = date("N",$timestamp);
return $jour_semaine[$njour];
echo $jour_semaine[$njour];
 }


En local avec wamp ou easyphp, aucun probleme, l'un est en php5.2 et l'autre en 5.3.
Pär contre une fois balancé sur OVH (php4) cela ne fonctionne plus....

Mon sauveur aura toute ma reconnaissance

seb
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 10 déc. 2009 à 06:11
3
Merci
Re,

... je ne vois pas trop ce qui peut bloquer là.
Je pense que le problème vient d'ailleurs.

Si tu crée un nouveau fichier et que tu colles ça :
<?php
ini_set('display_errors', 1);
error_reporting(-1);

function nom_jour($date) {
    $jour_semaine = array(1=>"Lundi", 2=>"Mardi", 3=>"Mercredi", 4=>"Jeudi", 5=>"Vendredi", 6=>"Samedi", 7=>"Dimanche");

    list($annee, $mois, $jour) = explode ("-", $date);
    
    $timestamp = mktime(0,0,0, $mois, $jour, $annee);
    $njour = date("N", $timestamp);
    return $jour_semaine[$njour];

}

echo 'jour : ['.nom_jour('2009-12-07').']';

?>


Qu'est ce que ça dit ?


Cordialement,


Kohntark -

Merci kohntark 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de kohntark
Meilleure réponse
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 10 déc. 2009 à 17:11
3
Merci
Arf, au temps pour moi, le format "N" n'est disponible qu'à partir de PHP 5.1.0. Remplace le donc par "w" et modifie ton tableau en conséquence (0=>dimanche, 1=>lundi, etc ...)

Pour ce qui est de l'erreur que tu as en PHP 5 :
http://fr2.php.net/manual/fr/function.date-default-timezone-set.php

Cordialement,

Kohntark -

Merci kohntark 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de kohntark
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 9 déc. 2009 à 18:23
0
Merci
Salut,

Il y a des trucs que je ne comprends pas dans ton code :

$timestamp mktime(0,0,0, date($mois), date($jour), date($annee));

> ça plutôt, non ?
$timestamp = mktime(0,0,0, $mois, $jour, $annee);

echo $jour_semaine[$njour];

=> ne sert à rien puisqu'il y a le return juste avant.

Le list aussi ne sert à rien; autant affecter l'explode à variable de type tableau et l'utiliser directement dans le mktime.


Tente dans un premier temps de corriger ça (le premier point surtout)

Et :
Quand tu dis que ça ne fonctionne plus que se passe t il au juste ? Une erreur ? un retour vide ?
Peux tu donner des exemples de date que tu passes à la fonction et qui ne fonctionnent pas ?

Cordialement,

Kohntark -
Commenter la réponse de kohntark
seb841 4 Messages postés mardi 8 décembre 2009Date d'inscription 10 décembre 2009 Dernière intervention - 9 déc. 2009 à 18:49
0
Merci
Merci pour cette premiere réponse claire et structurée, ca fait plaisir

Bon j'ai tenté le premier point, resultat identique.

Pour répondre a ta question, j'ai un retour vide

Mon objectif est le suivant :

J'ai une date en variable, par exemple "2009-12-09" Je veux l'afficher, mais la faire préceder de lundi...mardi... ici mercredi donc : Mercredi 2009-12-09

J'ai pas encore la solution mais tu me redonnes espoir

Niveau codage je suis pas un expert, j'ai beaucoup de mal a pondre un code de moi meme, par contre j'ai l'avantage de comprendre les codes que j'utilise et de réussir en général a les adapter... Ce qui explique les choses "en trop" que tu as trouvé (que jai viré et ca marche tout aussi bien ... en local )
Commenter la réponse de seb841
seb841 4 Messages postés mardi 8 décembre 2009Date d'inscription 10 décembre 2009 Dernière intervention - 10 déc. 2009 à 08:21
0
Merci
Alors,

Sur mon serveur PHP 5.3 (easy php) :
[code=php]Strict Standards: mktime() [function.mktime]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '1.0/no DST' instead in E:\_Environnement\bureau\QuisortLeSite\test.php on line 10

Strict Standards: date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '1.0/no DST' instead in E:\_Environnement\bureau\QuisortLeSite\test.php on line 11
jour : [Lundi]
/code


et sur OVH (php4) :

Notice: Undefined index: N in /homez.218/quisort/www/test.php on line 12
jour : []
Commenter la réponse de seb841
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 10 déc. 2009 à 17:14
0
Merci
Et puis :
PHP 4 c'est vieux
=> http://guide.ovh.com/Php5ChezOvh

date() c'est vieux
=> http://fr2.php.net/manual/fr/book.datetime.php


Kohntark -
Commenter la réponse de kohntark
seb841 4 Messages postés mardi 8 décembre 2009Date d'inscription 10 décembre 2009 Dernière intervention - 10 déc. 2009 à 19:17
0
Merci
Bien joué, c'était bien cela !

Merci a toi Mr Sylvain !!
Commenter la réponse de seb841
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 10 déc. 2009 à 19:35
0
Merci
De rien Mr Seb, ce fut un plaisir


Bonne continuation,


Kohntark -
Commenter la réponse de kohntark

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.