06. juli 2002 - 17:47
Der er
58 kommentarer og 1 løsning
Fejl i alders script.
Hej Ekspertbrugere. Jeg har lavet et alders script, som ved første øjekast så ud til at virke... men har fundet ud af at, den 6. februar, på står den at det er 4 dage siden at jeg havde fødselsdag... og jeg er altså født d. 5.... :( Nogle der kan se fejlen, eller ved hvor det går galt??? ------------------------------------------------------- $born_time = "342252922"; $real_time = time(); $complete_age = $real_time - $born_time; $years = date("y",$complete_age) - 70; $months = date("m", $complete_age) -1; $days = date("d", $complete_age); $hours = date("H", $complete_age) -1; $mins = date("i", $complete_age); $sec = date("s", $complete_age); // Måneder. if($months < 10 AND $months > 0) { $months = ereg_replace("0","", $months); } if($months < 1) { $months = substr($months, 0, 1); } if($months == "1") { $mon_txt = "måned"; } else { $mon_txt = "måneder"; } // Dage. if($days < 10 AND $days > 0) { $days = ereg_replace("0","", $days); } if($days == "1") { $day_txt = "dag"; } else { $day_txt = "dage"; } // Timer. if($hours < 10 AND $hours > 0) { $hours = ereg_replace("0","", $hours); } if($hours == "1") { $hour_txt = "time"; } else { $hour_txt = "timer"; } // Minutter if($mins < 10 AND $mins > 0) { $mins = ereg_replace("0","", $mins); } if($mins == "1") { $min_txt = "minut"; } else { $min_txt = "minutter"; } // Sekunder. if($sec < 10 AND $sec > 0) { $sec = ereg_replace("0","", $sec); } if($sec == "1") { $sec_txt = "sekund"; } else { $sec_txt = "sekunder"; } $age = "$years år, $months $mon_txt, $days $day_txt, $hours $hour_txt, $mins $min_txt og $sec $sec_txt"; -------------------------------------------------------
Annonceindlæg fra Infor
f.eks. i januar, d. 6. påstår den at det er 2 dage siden... jeg forstår faktisk ikke hvad der går galt...
Prøv at sætte -1 efter $days = date("d", $complete_age);
har jeg prøvet... så skriver den d. 6 at det er 0 dage siden... :(
Jeg kan ikke se fejlen i dit script, men måske kan du bruge dette script til at finde inspiration til en løsning: function hhe_stop(){ $stop = mktime(16, 30, 0, 6, 17, 2000); $nu = time(); $siden_aar = date("Y",$nu) - date("Y",$stop); $siden_dage = date("z",$nu) - date("z",$stop); if ( $siden_dage < 0 ) { $siden_aar -= 1; $siden_dage += 365; } $siden = "ps. Det er nu " . $siden_aar . " år og " . $siden_dage . " dage siden vi stoppede på skolen!"; return $siden; } $siden = "Det er nu " . $siden_aar . " år og " . $siden_dage . " dage siden jeg blev født!"; return $siden; }
Mit script skriver ikke hvor mange timer, minutter og sekunder der er gået, men det kan det nemt komme til... jeg lægger et svar i tilfælde af du kan bruge scriptet!
function hhe_stop(){ $stop = mktime(0, 0, 0, 2, 6, 1981); $nu = time(); $siden_aar = date("Y",$nu) - date("Y",$stop); $siden_dage = date("z",$nu) - date("z",$stop); if ( $siden_dage < 0 ) { $siden_aar -= 1; $siden_dage += 365; } $siden = "Det er nu " . $siden_aar . " år og " . $siden_dage . " dage siden jeg havde fødselsdag!"; return $siden; } print hhe_stop();
Kan man ikke omskrive det sådan at den også skriver måneder og realle dage, isetdet for antal dage siden nytår??
jo da! alt kan lade sig gøre - næsten *LOL* 2 sek - kigger lige på det :o)
Samme her, har ordnet den med måneder.. og knokler nu med dage. ;)
06. juli 2002 - 18:27
#10
jeg skal lige efter nogle smøger så kommer jeg igen... der går ca... 20mins. ;)
06. juli 2002 - 18:28
#11
damn... jeg kunne også godt ryge en smøg... har ikke røget i 2 dage!!!
06. juli 2002 - 18:31
#12
Sorry.. *GGG* har måtte låne for at kunne få. ;) *smider 2 pakker cyber smøger til Muddi*
06. juli 2002 - 18:52
#13
Så er jeg tilbage, hvad har du fundet ud af muddi??
06. juli 2002 - 18:59
#14
Damn den med dage, kan jeg sQ ikke hitte ud af. :(
06. juli 2002 - 19:05
#15
øh min storebror kom lige på besøg, så jeg har ikke fundet ud af noget... jeg kan kigge på det når jeg har spist ... er det ok?
06. juli 2002 - 19:07
#16
yeps... det begynder bare at irritere mig for vildt, at det var ikke vil som jeg vil... men det virker meget som om at den tror at jeg er født 19:15 istedet for 07:15... :(
06. juli 2002 - 19:10
#17
Jeg har løst problemet nu... jeg lægger lige svaret når jeg har spist :o)
06. juli 2002 - 19:14
#18
Okey, Tak. ;)
06. juli 2002 - 19:27
#19
Følgende giver dags dato fordelt på år, måneder, dage osv - vel at mærke som heltal uden eventuelle foranstillede nuller! Brug disse koder i stedet for alle de ereg_replace() du bruger! $now_year = (int) date("Y"); $now_month = (int) date("n"); $now_day = (int) date("j"); $now_hour = (int) date("G"); $now_minute = (int) date("i"); $now_second = (int) date("s");
06. juli 2002 - 19:29
#20
Og så skal du aldrig bruge ereg_replace() til en simpel substitution - der skal du altid bruge str_replace() - den er beregnet til den type opgaver, hvorimod ereg_replace() er lavet til mere komplekse mønstre af tekst! (Dermed er ereg_replace() også langsommere end str_replace())
06. juli 2002 - 19:34
#21
jamen tipsen... hvis den viser dags dato osv... hvad skal jeg så kunne bruge den til??? jeg skal finde ud af hvor gammel præcist jeg er fra 5 novem 1980, klokken 07:15:00 ...
06. juli 2002 - 19:34
#22
november even
06. juli 2002 - 19:42
#23
<?php //function tidsmaskine(){ $stop = mktime(0,0,0,2,24,1983); $nu = time(); $siden_aar = date("Y",$nu) - date("Y",$stop); $siden_dage = date("z",$nu) - date("z",$stop); $siden_timer = date("H",$nu) - date("H",$stop); $siden_minutter = date("i",$nu) - date("i",$stop); $siden_sekunder = date("s",$nu) - date("s",$stop); if ( $siden_dage < 0 ) { $siden_aar -= 1; $siden_dage += 365; } $siden = "Det er nu " . $siden_aar . " år, " . $siden_dage . " dage, ".$siden_timer." timer, ".$siden_minutter." minutter og ".$siden_sekunder." sekunder siden jeg blev født!"; print $siden; } ?>
06. juli 2002 - 19:44
#24
hov, jeg glemte lige det med måneder :o) 2 sek!
06. juli 2002 - 19:46
#25
Ja så langt er jeg også nået, pånær tiden... nu er det så at jeg gerne vil have måneder på... altså pt. 8 måneder og 1 dag... hvis du forstår hvad jeg mener. ?
06. juli 2002 - 19:46
#26
eehhh... havde ikke set det var dig muddi. *GGGG*
06. juli 2002 - 19:51
#27
<?php function tidsmaskine(){ $stop = mktime(0,0,0,2,24,1983); $nu = time(); $siden_aar = date("Y",$nu) - date("Y",$stop); $siden_maaneder = date("m",$nu) - date("m",$stop); $siden_dage = date("d",$nu) - date("d",$stop); $siden_timer = date("H",$nu) - date("H",$stop); $siden_minutter = date("i",$nu) - date("i",$stop); $siden_sekunder = date("s",$nu) - date("s",$stop); if ( $siden_dage < 0 ) { $siden_aar -= 1; $siden_dage += date("t",$nu); } $siden = "Det er nu " . $siden_aar . " år, ".$siden_maaneder." måneder, " . $siden_dage . " dage, ".$siden_timer." timer, ".$siden_minutter." minutter og ".$siden_sekunder." sekunder siden jeg blev født!"; print $siden; } ?>
06. juli 2002 - 19:52
#28
Muddi... prøv at smide dette ind. $stop = mktime(7, 15, 0, 11, 5, 1980); istedet for din egen. ;)
06. juli 2002 - 19:53
#29
never mind den er løst. ;)
06. juli 2002 - 19:56
#30
hvordan løste du den?
06. juli 2002 - 19:58
#31
Sådan her ser Resultatet ud. ;) ---------------------------------------------------------- $stop = mktime(7, 15, 0, 11, 5, 1980); $nu = time(); $years = date("Y",$nu) - date("Y",$stop); $months = date("m",$nu) - date("m",$stop); $days = date("d",$nu) - date("d",$stop); $hours = date("H",$nu) - date("H",$stop); $mins = date("i",$nu) - date("i",$stop); $sec = date("s",$nu) - date("s",$stop); if ( $days < 0 ) { $years -= 1; $days += date("t",$nu); } if ( $months < 0 ) { $years -= 1; $months += 12; } if($months == "1") { $mon_txt = "måned"; } else { $mon_txt = "måneder"; } if($days == "1") { $day_txt = "dag"; } else { $day_txt = "dage"; } if($hours == "1") { $hour_txt = "time"; } else { $hour_txt = "timer"; } if($mins == "1") { $min_txt = "minut"; } else { $min_txt = "minutter"; } if($sec == "1") { $sec_txt = "sekund"; } else { $sec_txt = "sekunder"; } $age = "$years år, $months $mon_txt, $days $day_txt, $hours $hour_txt, $mins $min_txt og $sec $sec_txt"; print $age; -----------------------------------------------------------------
06. juli 2002 - 19:58
#32
Vil du ikke lige se om det her virker? function tidsmaskine(){ $stop = mktime(7, 15, 0, 11, 5, 1980); $nu = time(); $siden_aar = date("Y",$nu) - date("Y",$stop); $siden_maaneder = date("m",$nu) - date("m",$stop); $siden_dage = date("d",$nu) - date("d",$stop); $siden_timer = date("H",$nu) - date("H",$stop); $siden_minutter = date("i",$nu) - date("i",$stop); $siden_sekunder = date("s",$nu) - date("s",$stop); if ( $siden_maaneder < 0 ) { $siden_aar -= 1; $siden_maaneder += 12; } if ( $siden_dage < 0 ) { $siden_maaneder -= 1; $siden_dage += date("t",$nu); } $siden = "Det er nu " . $siden_aar . " år, ".$siden_maaneder." måneder, " . $siden_dage . " dage, ".$siden_timer." timer, ".$siden_minutter." minutter og ".$siden_sekunder." sekunder siden jeg blev født!"; return $siden; } print tidsmaskine(); ?>
06. juli 2002 - 19:59
#33
Og så er den endda gjort pæn. ;) Hvade jo løst den med månederne. ;) Sååå det var jo bare at kopi/paste *GGGG*
06. juli 2002 - 20:00
#34
Det gør det. ;)
06. juli 2002 - 20:00
#35
Ok, er da glad for at du kunne bruge noget af min kode :o)
06. juli 2002 - 20:00
#36
FÅRK!
06. juli 2002 - 20:01
#37
06. juli 2002 - 20:01
#38
ok... det gik galt eller hvad?
06. juli 2002 - 20:02
#39
yeps...
06. juli 2002 - 20:04
#40
Det virker her: <?php function tidsmaskine(){ $stop = mktime(7, 15, 0, 11, 5, 1980); $nu = time(); $siden_aar = date("Y",$nu) - date("Y",$stop); $siden_maaneder = date("m",$nu) - date("m",$stop); $siden_dage = date("d",$nu) - date("d",$stop); $siden_timer = date("H",$nu) - date("H",$stop); $siden_minutter = date("i",$nu) - date("i",$stop); $siden_sekunder = date("s",$nu) - date("s",$stop); if ( $siden_maaneder < 0 ) { $siden_aar -= 1; $siden_maaneder += 12; } if ( $siden_dage < 0 ) { $siden_maaneder -= 1; $siden_dage += date("t",$nu); } if ( $siden_timer < 0 ) { $siden_dage -= 1; $siden_timer += 24; } if ( $siden_minutter < 0 ) { $siden_timer -= 1; $siden_minutter += 60; } if ( $siden_sekunder < 0 ) { $siden_minutter -= 1; $siden_sekunder += 60; } $siden = "Det er nu " . $siden_aar . " år, ".$siden_maaneder." måneder, " . $siden_dage . " dage, ".$siden_timer." timer, ".$siden_minutter." minutter og ".$siden_sekunder." sekunder siden jeg blev født!"; return $siden; } print tidsmaskine(); ?>
06. juli 2002 - 20:05
#41
hehe har fundet problemet. ;)
06. juli 2002 - 20:05
#42
nemlig, også det jeg fandt ud af. ;)
06. juli 2002 - 20:08
#43
<? $stop = mktime(7, 15, 0, 11, 5, 1980); $nu = time(); $years = date("Y",$nu) - date("Y",$stop); $months = date("m",$nu) - date("m",$stop); $days = date("d",$nu) - date("d",$stop); $hours = date("H",$nu) - date("H",$stop); $mins = date("i",$nu) - date("i",$stop); $sec = date("s",$nu) - date("s",$stop); if ( $months < 0 ) { $years -= 1; $months += 12; } if ( $days < 0 ) { $years -= 1; $days += date("t",$nu); } if ( $hours < 0 ) { $days -= 1; $hours += 24; } if ( $mins < 0 ) { $hours -= 1; $mins += 60; } if ($sec < 0 ) { $mins -= 1; $sec += 60; } if($months == "1") { $mon_txt = "måned"; } else { $mon_txt = "måneder"; } if($days == "1") { $day_txt = "dag"; } else { $day_txt = "dage"; } if($hours == "1") { $hour_txt = "time"; } else { $hour_txt = "timer"; } if($mins == "1") { $min_txt = "minut"; } else { $min_txt = "minutter"; } if($sec == "1") { $sec_txt = "sekund"; } else { $sec_txt = "sekunder"; } $age = "$years år, $months $mon_txt, $days $day_txt, $hours $hour_txt, $mins $min_txt og $sec $sec_txt"; echo $age; ?>
06. juli 2002 - 20:09
#44
Sådan her skal den se ud. ;) Muddi du er genial. ;) Du har sQ fortjent de 60 point. ;) Og MANGE Tak for hjælpen. ;) *H5* - TheSpeaker.
06. juli 2002 - 20:10
#45
Det var jo sjovt nok - lærte også lidt selv ... Happy Coding :)
06. juli 2002 - 20:11
#46
You too my friend. ;)
06. juli 2002 - 20:12
#47
Men Muddi... det er med 100% garenti ikke sidste gang du ser mig. *GGG* ;)
06. juli 2002 - 20:14
#48
E 4ever ! Tak for point!
06. juli 2002 - 20:15
#49
Ovennævnte fungerer ikke - prøv eks: $stop = mktime(7, 15, 0, 11, 5, 1980); $nu = mktime(7, 15, 0, 10, 4, 2002);
06. juli 2002 - 20:16
#50
...og efter hvad jeg lige kan gennemskue, bliver den også svær at lappe på...
06. juli 2002 - 20:21
#51
Hvis I prøver at lappe den - så prøv samtidig nedenstående: $stop = mktime(1, 1, 1, 1, 1, 1980); $nu = mktime(0, 0, 0, 1, 1, 2002); -skulle gerne give lige knap 22 år!
06. juli 2002 - 20:21
#52
hmmm skummelt... *GGG* har lige prøvet at slå tiden over til 4 oktober.. der virker det fint??
06. juli 2002 - 20:22
#53
dvs. personen er 21 år?
06. juli 2002 - 20:23
#54
tipsen -> hvad er chancen for at der kommer nogle ind på slaget 0:0:0 nytårs aften???
06. juli 2002 - 20:28
#55
Jeg giver bare eksempler på hvornår det kikser - og den type eksempler kan jeg give for hele året - hver eneste dag...
06. juli 2002 - 20:29
#56
men hvis du er tilfreds med scriptet, så beholder du det da bare som det er!
06. juli 2002 - 20:36
#57
Jamen tipsen.. istedet for at rakke det ned, hvad så med at hjælpe?? Du har fundet en fejl, hvad så med at prøve at rette det?? Er det ikke derfor at Eksperten er her?? - TheSpeaker. ps. kan godt oprette et nyt spørgsmål, hvis det er pointne du er bange for ikke at få.
06. juli 2002 - 21:24
#58
Jeg ville gerne rette det, men som jeg skrev ovenfor mener jeg ikke umiddelbart at det kan lappes (hvertfald ikke at jeg kan finde ud af at rette det!) og jeg har lidt dårlig tid til at sætte mig ned og lave et helt nyt script, så derfor tænkte jeg at jeg kunne give nogle eksempler på, hvor det fejlede - og så ville du nok kunne gennemskue, hvorfor det fejlede!
06. juli 2002 - 21:32
#59
Jamen det er også fair nok, men du må meget gerne lave et nyt script når du engang får tid til det, jeg klarer mig nok med det her indtil videre hvis der er så mange fejl i, som du mener der er. ;) *G* - TheSpeaker.
Vi tilbyder markedets bedste kurser inden for webudvikling