Je ne comprends pas cette fonction php

Résolu/Fermé
dragazor Messages postés 49 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 juillet 2013 - 18 déc. 2009 à 18:02
dragazor Messages postés 49 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 juillet 2013 - 18 déc. 2009 à 19:48
Bonjour à tous,
j'ai cette fonction qui fonctionne très bien et qui permet de convertir AAAA-MM-DD en DD/MM/AAAA. Le seul problème c'est que moi je voudrais faire l'inverse c a d passer de DD/MM/AAAA vers AAAA-MM-DD et je ne comprends pas bien la fonction que j'ai donc je ne peux pas la modifier (quand je le fais j'ai plein d'erreurs).
J'aimerais si possible que vous m'aidiez à comprendre la fonction pour que je puisse la modifier.
Je précise que je comprends quand même la ligne explode lol.

function convdate1($date1)
{
$d1 = explode("-", $date1);
$date2 = date("d/m/Y",mktime(0,0,0, $d1[1], $d1[2], $d1[0]));
return $date2;
}
A voir également:

5 réponses

kelsett Messages postés 353 Date d'inscription dimanche 9 juillet 2006 Statut Membre Dernière intervention 13 octobre 2014 62
18 déc. 2009 à 18:37
Transforme 1999-03-30 en 30/03/1999 :
function convdate1($string)
{
$d1 = explode("-", $string);
$string= date("d/m/Y",mktime(0,0,0, $d1[1], $d1[2], $d1[0]));
return $string;
}


Transforme 30/03/1999 en 1999-03-30 :
function convdate2($string)
{
$d1 = explode("/", $string);
$string = date("Y-m-d",mktime(0,0,0, $d1[1], $d1[0], $d1[2]));
return $string;
}
3
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
18 déc. 2009 à 18:39
c'est mieux.
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
18 déc. 2009 à 18:17
bonsoir,

$d1 = explode("-", $date1);

cette fonction permet de créer un tableau $d1 dans lequel chaque élément contiendra les données issues de $date1 après les avoir séparées avec le séparateur - à savoir
ainsi si $adte1 contient 12-10-2009
$d1[0] contendra 12
$d1[1] contendra 10
et $d1[2] contendra 2009


un explode de DD/MM/AAAA avec /
donnera $d[0] = DD
$d[1] = MM
$d[2] = AAAA

$nouvelledate = $d[2]."-".$d[1]."-".$d[0];

0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
18 déc. 2009 à 18:17
C'est juste pour transformer "2009-12-18" en "18/12/2009".
0
dragazor Messages postés 49 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 juillet 2013 5
18 déc. 2009 à 18:51
Je vous remercie pour vos réponses,
le code que m'a donné kelsett fonctionne parfaitement, en revanche je n'y comprends pas trop la logique.
Si je considère les explications de de giheller, mon année sera stockée dans 2 mon mois dans 1 et mon jour dans 0. dans le code on devrait avoir cette ligne:
                  $string = date("Y-m-d",mktime(0,0,0, $d1[2], $d1[1], $d1[0]));

au lieu de
                  $string = date("Y-m-d",mktime(0,0,0, $d1[1], $d1[0], $d1[2]));

comme ma di kelsett. En revanche c'est le code de Kelsett qui fonctionne. Pourquoi?
0
kelsett Messages postés 353 Date d'inscription dimanche 9 juillet 2006 Statut Membre Dernière intervention 13 octobre 2014 62
18 déc. 2009 à 18:55
0

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

Posez votre question
dragazor Messages postés 49 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 juillet 2013 5
18 déc. 2009 à 19:48
Oké jte remercie en tt cas. Jv jeter un oeil au lien que tu m'as transmis.
Merci encore.
0