PHP5 bug?syntaxe, affichage de date lorsque son format est une variable

vincseize Messages postés 113 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 28 mars 2010 - 27 mars 2010 à 14:05
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 - 28 mars 2010 à 12:01
Bonjour

Je souhaiterais pouvoir changer le format de date comme bon me semble;
j'ai mis son format dans une variable, mais:

->


$format_date = 'd m Y H:i:s';
----
'date lastMod' => date('$format_date', filemtime($path))

me retourne: $f2010Fri, 15 Jan 2010 23:59:03 +000001pm31_15pm31UTC

Cordialement

Vincseize

9 réponses

Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
27 mars 2010 à 14:09
Hello,

Une variable entre '' n'est pas interprétée. Il faut des "" pour qu'elle le soit. dans ton cas tu n'as besoin ni de l'un ni de l'autre.

Exemple :
<?php
$mavar = 'toto';
echo "$mavar";
// toto
echo '$mavar';
// $mavar
echo $mavar;
// toto
?>


_________________________________
Min iPomme
0
vincseize Messages postés 113 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 28 mars 2010
27 mars 2010 à 14:16
nop,
hélas ce n'est pas si simple
tu imagines bien que j ai déja essayé:

[b]date('$format_date', filemtime($path))
date($format_date, filemtime($path)) -> renvoie rien
date("$format_date", filemtime($path)) -> renvoie rien/b



Vincseize
0
vincseize Messages postés 113 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 28 mars 2010
27 mars 2010 à 14:29
pour expliquer encore plus simplement:

$today = date("Ymd");

mais je souhaiterais:

[b]$format_date = "Ymd";
$today = date($format_date); /b

et là, y'a hic on dirait



Vincseize
0
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
27 mars 2010 à 14:40
Héhé bizzar, chez moi ca marche :
<?php
$dated = 'Ymd';
echo date($dated, time()); 
//20100327
echo date($dated); 
//20100327
?>

=>PHP Version 5.2.10

_________________________________
Min iPomme
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
27 mars 2010 à 14:41
T'as pensé au
<?php
error_reporting(E_ALL);
ini_set( 'display_errors', 1 );
?>

En haut de ton code ?


_________________________________
Min iPomme
0
vincseize Messages postés 113 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 28 mars 2010
27 mars 2010 à 15:16
hum

bien sûr et effectivement l'exemple du dessus marche
mais je pense en fait que c'est une histoire de formatage précis de valeurs dans un array:

c'est pour cet utilisation précise que cela 'bug'?

$directory_tree[] = array(
'path' => $path,
'extension' => $extension,
'date lastMod' => date('$format_date', filemtime($path))
);

$cle=>$valeur, 'date lastMod' me retourne:
$f2010Fri, 15 Jan 2010 23:59:03+000001pm31_15pm31UTC



Vincseize
0
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
27 mars 2010 à 17:14
C'est normale que ca marche pas ca :
<?php
$directory_tree[] = array(
'path' => $path,
'extension' => $extension,
'date lastMod' => date('$format_date', filemtime($path))
);
?>

Ou plutôt si ca marche, il convertis bien les caractères suivants $format_date par rapport au caractères qu'il connais : Cf. ici
- Le o de format est transformé en année
- Le r de format est transformé en date (Format de date » RFC 2822)
- Etc.
Et donc tu me dis que ca :
<?php
$directory_tree[] = array(
'path' => $path,
'extension' => $extension,
'date lastMod' => date($format_date, filemtime($path))
);
?>

Ca fonctionne pas ?

_________________________________
Min iPomme
0
vincseize Messages postés 113 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 28 mars 2010
27 mars 2010 à 17:49
Et bien du coup:

$format_date = 'c'; //// Date au format ISO 8601 (ajouté en PHP 5)	2010-01-15T23:59:03+00:00


fonctionne effectivement

merci Tonio pour le lien qui m'a raffraichit les idées sur les formats de Dates

Vincseize
0
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
28 mars 2010 à 12:01
Mais de rien


_________________________________
Min iPomme
0
Rejoignez-nous