Avatar billede Thomasrn Seniormester
25. august 2019 - 04:23 Der er 4 kommentarer

giver hele tiden 27

hej laver nogle fiktive spiller og skal fylde år hver 30 dag så har lavet en oprettelse dato i min database og bruger denne kode:

      $oprettelsedato = $row["oprettelsedato"];
      $alder = $row["alder"];

      $oprettelsedato = new DateTime($oprettelsedato);
  $dato2 = new DateTime('now');
  $interval1 = $dato2->diff($oprettelsedato);
  $interval2 = $dato2->diff($oprettelsedato);

  $interval1->format('%y year');
  $interval2->format('%m month');
  $maanederpraar = 12;
  $aartilmaaneder = $interval1 * $maanederpraar;
  $månedalder = $interval1 + $aartilmaaneder;

  $aldermedmåneder = $månedalder + $alder;
  echo $aldermedmåneder;
  ?>
    <div class="alder"><?php echo $aldermedmåneder;?></div>¨

normalt er alderen 14 men når køre den her kode er det lige som om der er gået 13 måneder deres alder ændres ihvertfald til 27 hvordan kan det være?
på forhånd tak
Avatar billede arne_v Ekspert
25. august 2019 - 05:00 #1
Din genbrug af variable er en rigtig daarlig ide.

Men hvis man skal holde sif til den stil saa tror jeg at:

$interval1->format('%y year');
$interval2->format('%m month');

skal vaere:

$interval1 = $interval1->format('%y year');
$interval2 =  $interval2->format('%m month');
Avatar billede Thomasrn Seniormester
25. august 2019 - 12:46 #2
har ændret den til det du siger men enten ændre den sig ikke eller bliver den til 27 forstår ikke hvad der er galt med koden men hvis jeg ikke skal genbruge koden hvordan vil du så skrive den?
Avatar billede arne_v Ekspert
25. august 2019 - 17:15 #3
Maaske noget a la:

$db_oprettelsedato = $row["oprettelsedato"];
$oprettelsedato = new DateTime($db_oprettelsedato);
$now = new DateTime();
$interval = $now->diff($oprettelsedato);
$y = $interval->y;
$m = $interval->m;

Resten af din kode forstaar jeg ikke.
Avatar billede Slettet bruger
26. august 2019 - 10:12 #4
Jeg tror problemet ligger her:
  $aartilmaaneder = $interval1 * $maanederpraar;
  $månedalder = $interval1 + $aartilmaaneder;

og at du ikke rigtig bruger $interval2 til noget som helst
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester