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
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');
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?
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.
Thomas S Ekspert
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
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.

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





Premium
Microsoft opgiver milliardkøb af gamer-chatplatform med tusindvis af danske brugere
I marts forlød det, at Microsoft var svært interesseret i at købe chatplatformen Discord for over 10 milliarder dollar. Men planen er tilsyneladende gået i vasken.
CIO
Har du rost din mellemleder i dag? Snart er de uddøde - og det er et tab
Computerworld mener: Mellemledere lever livet farligt: Topledelsen får konstant ideer med skiftende hold i virkeligheden, og moden går mod flade agile organisationer. Men mellemlederen er en overset hverdagens helt med et kæmpe ansvar. Her er min hyldest til den ofte latterliggjorte mellemleder.
Job & Karriere
"Vi var nødt til at sige til dem, at I er nødt til at sende ham hjem nu, for han begynder at knække"
"Vi var nødt til at sige til dem, at I er nødt til at sende ham hjem nu, for han begynder at knække"
White paper
Har du både dine applikationer og dit hoved i skyen?
Kan du nikke ja til en eller flere af disse situationer? • I bruger mange cloud-applikationer • I logger ind fra flere lokationer • I logger ind fra flere forskellige typer af devices Så kan du få stort udbytte af at læse dette whitepaper … Hver dag tilgår, navigerer og arbejder jeres medarbejdere i de applikationer, I har liggende i ”skyen”. Antallet af cloud-baserede applikationer stiger eksplosivt, så hvordan sikrer I ADGANGEN til dem og til de data, som applikationerne indeholder? Vel at mærke uden at gå på kompromis med BRUGERVENLIGHEDEN? Løsningen er Access Management, som er hovedtemaet for dette whitepaper.