24. august 2007 - 15:58
Der er
30 kommentarer
Omskrivning af datetime til dansk format!
Hej, Jeg vil gerne omskrive følgende datetime record: timeStamp: 2007-08-20 01:35:34 til 20. august 2007 kl. 01:35:34? Har prøvet uden held.
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
24. august 2007 - 16:10
#1
Jeg tror der findes en funktion der kan gøre det, men ellers kan du vel gøre noget ala.: $months = array( 1 => array( 1 => 'Jan', 2 => 'January' ), 2 => array( 1 => 'Feb', 2 => 'February' ), 3 => array( 1 => 'Mar', 2 => 'Marts' ), 4 => array( 1 => 'Apr', 2 => 'April' ), 5 => array( 1 => 'May', 2 => 'May' ), 6 => array( 1 => 'Jun', 2 => 'June' ), 7 => array( 1 => 'Jul', 2 => 'July' ), 8 => array( 1 => 'Aug', 2 => 'August' ), 9 => array( 1 => 'Sep', 2 => 'September' ), 10 => array( 1 => 'Oct', 2 => 'October' ), 11 => array( 1 => 'Nov', 2 => 'November' ), 12 => array( 1 => 'Dec', 2 => 'December' ) ); function dateconv( $date, $months=$months ) { $date = explode( '-', substr( $date, 0, 10 ) ); $month = intval( $date[1] ); return $date[2] . '. ' . $months[$date[1]] . ' ' . $date[0] . 'kl. ' . substr( $date, 11 ); }
24. august 2007 - 16:28
#2
<ole> zurekk >> Hvis ikke du kan skrive én linje, der giver mening, bør du helt sikkert teste dine koder, før du smider dem op. I dén gang vrøvl skal man godtnok lede grundigt for at finde huller mellem fejlene! $months = array( "januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november", "december" ); function dateconv( $date ) { global $months; $date = explode( " ", $date ); $aDate = explode("-", $date[0]); return $aDate[2].". ".$months[$aDate[1]-1]." ".$aDate[0]." kl. ".$date[1]; } /mvh </bole>
24. august 2007 - 16:34
#3
Nånå - ingen grund til at blive fjendtlig :) Kan nu ikke se den store forskel udover at du bruger global, og vælger en ekstra explode fremfor substr() :)
24. august 2007 - 16:54
#5
zurekk >> Det er ikke dig, men din kode, jeg kritiserer. "Kan nu ikke se den store forskel udover at du bruger global, og vælger en ekstra explode fremfor substr()" - nej, det er jo lige præcis det problem, jeg peger på. Når du ikke kan læse en kode, må du teste den ;o) $months[$date[1]] - giver ikke mening, da der ikke returneres en streng, men et array substr( $date, 11 ); - giver ikke mening, da $date ikke er en streng, men et array Desuden kan dit $months-array slet ikke bruges indefra funktionen uden 'global $months;'. Der er gigantiske forskelle på vores to bud - herunder at mit virker ;o)
24. august 2007 - 17:01
#6
Kan man da ikke inkludere et array i en parameter?
24. august 2007 - 17:05
#7
Jo, sagtens ... men det er da vist ikke et problem her
24. august 2007 - 17:07
#8
Hej Ole, Skal jeg erstatte $date med $usertimeStamp, som er min record? Hvordan kan jeg udskrive datoen?
24. august 2007 - 17:10
#9
zurekk >> Hvis det er dette forsøg, du mener: $months=$months - så burde du have tjekket i stedet for at spørge mig nu. Så havde du uden tvivl fået en fejl. Én ting er, at det ikke er lovligt - men det er kemisk renset for logik og derfor helt åbenlyst ulovligt! farhang >> Her er et eksempel på brugen: $months = array( "januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november", "december" ); function dateconv( $date ) { global $months; $date = explode( " ", $date ); $aDate = explode("-", $date[0]); return $aDate[2].". ".$months[$aDate[1]-1]." ".$aDate[0]." kl. ".$date[1]; } print dateconv("2007-08-20 01:35:34");
24. august 2007 - 17:44
#10
Hej igen, Du er for cool. ;-) Hvordan fjerner man sekunderne?
24. august 2007 - 17:49
#11
Muligvis: function dateconv( $date ) { global $months; $date = explode( " ", $date ); $aDate = explode("-", $date[0]); $aTime = explode(":", $date[1]); return $aDate[2].". ".$months[$aDate[1]-1]." ".$aDate[0]." kl. ".$aTime[0].":".$aTime[1]; } :-)
24. august 2007 - 17:53
#12
- præcis ;o)
24. august 2007 - 19:52
#13
Tusind tak for hjælpen. Kom med jeres svar.
24. august 2007 - 20:11
#14
olebole er lige smuttet ud (skrev han for lidt siden), så han kan ikke lægge et svar nu.. og han er den der skal have points.. Jeg har bare lavet en meget lille tilføjelse, som han selv ville have lavet i 24/08-2007 17:53:37, hvis jeg gjort det.. så jeg skal ikke have points.. "And the points go to..... olebole".. Oscar-show agtigt.. smil eller lad vær.. :-)
24. august 2007 - 20:12
#15
backspace...backspace...backspace...etc...rettelse..."hvis jeg ikke havde gjort det"...send... :-)
24. august 2007 - 21:02
#16
Det ligner nu ikke en olebole løsning, med det explode? :O) substr() skulle vist også være bedre, nu hvor man ved præcis format af streng. $maaneder = array( "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"); $tid = strtotime("2007-08-20 01:35:34"); $dag = date("d", $tid); $month = date("m", $tid); echo $dag .". ". $maaneder[($month-1)] ." ". date("Y k\l. H:i", $tid);
24. august 2007 - 21:12
#17
Hvorfor ikke lave: <?php //http://www.eksperten.dk/spm/793247 setlocale(LC_TIME, 'da_DK'); $myDate = '2007-08-20 01:35:34'; //20. august 2007 kl. 01:35:34 echo strftime('%e. %B %Y kl. %T',strtotime($myDate)); ?>
24. august 2007 - 21:24
#18
Hehe.. spørg olebole.. jeg programmerer ikke i PHP.. :-) (han gør vist eller noget)
24. august 2007 - 22:12
#19
Personligt ville jeg også bruge setlocale og strtotime :-)
24. august 2007 - 22:35
#20
Det kan man absolut også. Det blev faktisk allerede foreslået i (24/08-2007 16:45:26) =)
24. august 2007 - 22:36
#21
I sover jo i timen alle sammen.. tsk tsk.. ;-)
24. august 2007 - 22:41
#22
Det var derfor at jeg skrev "også" :-)
25. august 2007 - 12:57
#23
De gange jeg har rodet med setlocale() har det virket på nogle servere, men ikke på andre. Så jeg bruger altid noget "mix" for at vise dansk dato
25. august 2007 - 13:28
#24
Jeg har aldrig haft problemer med setlocale(), men man kan sikkert sagtens finde webhoteller hvor da_DK fx mangler :-)
25. august 2007 - 15:52
#25
Du er ikke alene, showsource =)
25. august 2007 - 15:55
#26
- dens virkemåde er platformsafhængig og er derfor noget rod at bruge, hvis portabillitet er interessant ... og hvornår er det ikke tilfældet? ;o)
25. august 2007 - 16:18
#27
Godt ord igen Ole :-) Det gør bare ondt i mine øjne når jeg ser et array med månedsnavne, men det er nok fordi jeg kun arbejder på dejlige linuxboxe, at jeg aldrig har haft problemer med setlocale :-)
25. august 2007 - 17:22
#28
Uanset hvilken browser jeg bruger, skriver jeg X-browser kode - for jeg kan jo ikke vide, hvilken browser min bruger anvender. Uanset, hvilet styresystem min egen server kører med, skriver jeg platformsuafhængig kode - for jeg kan jo ikke vide, om min bruger senere ønsker at skifte udbyder (og dermed måske også styresystem).
25. august 2007 - 18:09
#29
Og det er den helt rigtige holdning at have Ole :-)
21. januar 2009 - 10:03
#30
farhang?
Vi tilbyder markedets bedste kurser inden for webudvikling