Je ne comprends pas cette fonction php

Résolu
dragazor Messages postés 56 Statut Membre -  
dragazor Messages postés 56 Statut Membre -
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 376 Statut Membre 62
 
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 1952 Statut Membre 142
 
c'est mieux.
0
giheller Messages postés 1952 Statut Membre 142
 
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 20367 Statut Contributeur 4 509
 
C'est juste pour transformer "2009-12-18" en "18/12/2009".
0
dragazor Messages postés 56 Statut Membre 5
 
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 376 Statut Membre 62
 
0

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

Posez votre question
dragazor Messages postés 56 Statut Membre 5
 
Oké jte remercie en tt cas. Jv jeter un oeil au lien que tu m'as transmis.
Merci encore.
0