par
JeanJean » 17 janv. 2010, 13:46
1/ Quelques explications sur la gestion des dates.
- Dans la BDD, la date est sous la forme aaaa-mm-jj. Or moi la date doit se trouver dans ce format là : "Dimanche 17 janvier"
- J'utilise explode() afin d'enlever les tirets entre chaque élément de la date.
- Ensuite mktime() me permet de retourner un timestamp avec une date donnée. Dans mon cas, je retourne le tableau associatif crée au préalable avec explode()
- Ensuite, la fonction date() formule la date sous cette forme : "Sunday 17 January" à partir sur timestamp.
- La fontion date_fr() remplace les jours et mois Anglais en Français.
Je suis conscient que la méthode utilisé est vraiment pas très propre, mais totalement fonctionnel.
Avec la méthode que tu me propose, ça reviendra un peu au même non ? Mise à part l'utilisation d'un tableau.
2/ Si, j'y ai déjà pensé en ajoutant un LIMIT 0,1 dans la requête SQL. :
<?php
require 'config.php';
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
$page = basename($_SERVER["SCRIPT_NAME"]);
$lecture = mysql_query('SELECT * FROM news WHERE categorie="'.$page.'" ORDER BY date DESC LIMIT 0,1');
while($row = mysql_fetch_assoc($lecture)){
}
$tableau_date = explode('-',$row['date']);
$timestamp = mktime(0,0,0,$tableau_date[1],$tableau_date[2],$tableau_date[0]);
$date = date('l j F',$timestamp);
function date_fr(&$date){
$date = str_replace('Monday','Lundi',$date);
$date = str_replace('Tuesday','Mardi',$date);
$date = str_replace('Wednesday','Mercredi',$date);
$date = str_replace('Thursday','Jeudi',$date);
$date = str_replace('Friday','Vendredi',$date);
$date = str_replace('Saturday','Samedi',$date);
$date = str_replace('Sunday','Dimanche',$date);
$date = str_replace('January','janvier',$date);
$date = str_replace('February','février',$date);
$date = str_replace('March','mars',$date);
$date = str_replace('April','avril',$date);
$date = str_replace('May','mai',$date);
$date = str_replace('June','juin',$date);
$date = str_replace('July','juillet',$date);
$date = str_replace('August','août',$date);
$date = str_replace('September','septembre',$date);
$date = str_replace('October','octobtre',$date);
$date = str_replace('November','novembre',$date);
$date = str_replace('December','décembre',$date);
return ($date);
}
?>
Cependant, j'ai quelques problèmes :
A/ Le titre et le contenu ne s'affiche plus, et la date : "Jeudi 1 janvier 1970"
B/ Le script me retourne ces erreurs :
Notice: Undefined offset: 1 in D:\wamp\www\GourmetPHP\degustation.php on line 14
Notice: Undefined offset: 2 in D:\wamp\www\GourmetPHP\degustation.php on line 14
Warning: mktime() expects parameter 6 to be long, string given in D:\wamp\www\GourmetPHP\degustation.php on line 14
Merci.

1/ Quelques explications sur la gestion des dates. ;)
- Dans la BDD, la date est sous la forme aaaa-mm-jj. Or moi la date doit se trouver dans ce format là : "Dimanche 17 janvier"
- J'utilise explode() afin d'enlever les tirets entre chaque élément de la date.
- Ensuite mktime() me permet de retourner un timestamp avec une date donnée. Dans mon cas, je retourne le tableau associatif crée au préalable avec explode()
- Ensuite, la fonction date() formule la date sous cette forme : "Sunday 17 January" à partir sur timestamp.
- La fontion date_fr() remplace les jours et mois Anglais en Français.
Je suis conscient que la méthode utilisé est vraiment pas très propre, mais totalement fonctionnel.
Avec la méthode que tu me propose, ça reviendra un peu au même non ? Mise à part l'utilisation d'un tableau. ;)
2/ Si, j'y ai déjà pensé en ajoutant un LIMIT 0,1 dans la requête SQL. :
[php]
<?php
require 'config.php';
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
$page = basename($_SERVER["SCRIPT_NAME"]);
$lecture = mysql_query('SELECT * FROM news WHERE categorie="'.$page.'" ORDER BY date DESC LIMIT 0,1');
while($row = mysql_fetch_assoc($lecture)){
}
$tableau_date = explode('-',$row['date']);
$timestamp = mktime(0,0,0,$tableau_date[1],$tableau_date[2],$tableau_date[0]);
$date = date('l j F',$timestamp);
function date_fr(&$date){
$date = str_replace('Monday','Lundi',$date);
$date = str_replace('Tuesday','Mardi',$date);
$date = str_replace('Wednesday','Mercredi',$date);
$date = str_replace('Thursday','Jeudi',$date);
$date = str_replace('Friday','Vendredi',$date);
$date = str_replace('Saturday','Samedi',$date);
$date = str_replace('Sunday','Dimanche',$date);
$date = str_replace('January','janvier',$date);
$date = str_replace('February','février',$date);
$date = str_replace('March','mars',$date);
$date = str_replace('April','avril',$date);
$date = str_replace('May','mai',$date);
$date = str_replace('June','juin',$date);
$date = str_replace('July','juillet',$date);
$date = str_replace('August','août',$date);
$date = str_replace('September','septembre',$date);
$date = str_replace('October','octobtre',$date);
$date = str_replace('November','novembre',$date);
$date = str_replace('December','décembre',$date);
return ($date);
}
?>[/php]
Cependant, j'ai quelques problèmes :
A/ Le titre et le contenu ne s'affiche plus, et la date : "Jeudi 1 janvier 1970"
B/ Le script me retourne ces erreurs :
[b]Notice: Undefined offset: 1 in D:\wamp\www\GourmetPHP\degustation.php on line 14
Notice: Undefined offset: 2 in D:\wamp\www\GourmetPHP\degustation.php on line 14
Warning: mktime() expects parameter 6 to be long, string given in D:\wamp\www\GourmetPHP\degustation.php on line 14[/b]
Merci. ;)