Problème fonction date à devenir fou

jbtz64
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 21
Inscription: 28 Mai 2008

Problème fonction date à devenir fou

Message le Sam Mai 31, 2008 14:36

bonjour, j'ai un problème avec une fonction, la voici:

<?php
$datelien=$_GET['date'];
$date = preg_replace( '#(:digit:{2})(:digit:{2})(:digit:{4})#', '$1/$2/$3 00:00:00', $datelien );
echo $date;
echo '<br />';
echo $datelien;
echo '<br />';
$timestamp = strtotime ($date);
echo '<br />';
echo date('d/m/Y', $timestamp);
?>

sur ma page /news.php?date=18051993 voila ce que j'obtiens :

18/05/1993 00:00:00 /* >>>>> normal
18051993 /* >>>> normal

05/06/1994 /*incomprehensible du moins pour moi

si quelqu'un avait une petit idée, ca m'arrangerait fortement. merci


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Sam Mai 31, 2008 17:04

Tu peux utiliser

$timestamp = mktime(heures, minutes, secondes, mois, jour, année);

après avoir fait un petit explode("-", $date) par exemple
Dernière édition par YoyoS le Sam Mai 31, 2008 17:07, édité 1 fois.

jbtz64
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 21
Inscription: 28 Mai 2008

re:

Message le Sam Mai 31, 2008 17:06

oui exactement je m'en suis sorti comme ca, grâce à cette fonction
[code]
function JJMMAAAAToTimeStamp($value)
{
$day = floor($value / 1000000);
$month = floor(($value-$day*1000000)/10000);
$year = $value-$day*1000000-$month*10000;
return mktime (0, 0, 0, $month, $day, $year);
}
[/code]

merci quand même et bon weekend.

Moof
WRInaute discret
WRInaute discret
 
Messages: 206
Inscription: 22 Mar 2003

Re: Problème fonction date à devenir fou

Message le Sam Mai 31, 2008 22:25

jbtz64 a écrit:bonjour, j'ai un problème avec une fonction, la voici:

<?php
$datelien=$_GET['date'];
$date = preg_replace( '#(:digit:{2})(:digit:{2})(:digit:{4})#', '$1/$2/$3 00:00:00', $datelien );
echo $date;
echo '<br />';
echo $datelien;
echo '<br />';
$timestamp = strtotime ($date);
echo '<br />';
echo date('d/m/Y', $timestamp);
?>

sur ma page /news.php?date=18051993 voila ce que j'obtiens :

18/05/1993 00:00:00 /* >>>>> normal
18051993 /* >>>> normal

05/06/1994 /*incomprehensible du moins pour moi

si quelqu'un avait une petit idée, ca m'arrangerait fortement. merci


Je pense que le soucis, c'est que dans strtotime ($date), php interprete le 18/05 comme le cinquième jour du 18ème mois (en anglais, le format de date est mm/dd/yy), et le 18ème mois de 1993, c'est le 6 ème mois de 1994 :)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité