/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
DateTime med dansk opsætning
Fra : Thomas P


Dato : 29-06-01 10:31

Hej,

For et stykke tid siden fik jeg skrevet denne funktion for mig:

function DanskDato($ind) {
$ud = substr($ind, 8, 2);
$ud .= "/".substr($ind, 5, 2);
$ud .= " ".substr($ind, 0, 4);
return $ud;
}

, der skulle ændre den engelske måde at skrive datoer på til den danske
måde, hvilket da også virker helt perfekt med denne kode. Nu spørger jeg så
(idet jeg ikke selv kan se hvad der sker i koden): Hvordan kan jeg få tiden
med ? Tiden er helt normal, altså timer:minutter:sekunder, den skal bare med


--
- Thomas
~~~~~~~~
.... http://www.FlowCode.f2s.com - where code flows
.... mailto:blomme@post.com - where email goes



 
 
Niels (29-06-2001)
Kommentar
Fra : Niels


Dato : 29-06-01 10:40

Just as I expected, Thomas P came up with this:

>For et stykke tid siden fik jeg skrevet denne funktion for mig:

Af mig

>function DanskDato($ind) {
>$ud = substr($ind, 8, 2);
>$ud .= "/".substr($ind, 5, 2);
>$ud .= " ".substr($ind, 0, 4);
>return $ud;
>}

Fungerer kun på datoer i formatet "YYYY-MM-DD"

>(idet jeg ikke selv kan se hvad der sker i koden)

substr() funktionen trækker nogen tegn ud af en string (ligesom Copy() i
Pascal). Altså jeg trækker først tegn 9 og 10 ud af input (som er dato)
og sætter dem på output, så sætter jeg en separator på output og så
måneden på output, til sidsten en til separator og så året. Andet sker
der ikke.

Prøv den kode jeg gav dig over ICQ i går

Niels
--
http://www.niller.f2s.com/ - niLLer's pages, that's my software
http://g4s.dnsq.org/ - when I'm online
g4s ad post dot ocm - new email! (note: it's .com !)
ICQ#: 50187323

Thomas P (29-06-2001)
Kommentar
Fra : Thomas P


Dato : 29-06-01 11:10

> Af mig

Det er også rigtigt

> substr() funktionen trækker nogen tegn ud af en string (ligesom Copy() i
> Pascal). Altså jeg trækker først tegn 9 og 10 ud af input (som er dato)
> og sætter dem på output, så sætter jeg en separator på output og så
> måneden på output, til sidsten en til separator og så året. Andet sker
> der ikke.

Interessant - det vil sådan set sige at DateTime faktisk bare er en
intelligent afart af en normal string. Tror vist jeg skal til at læse lidt
mere på mine string-operators i PHP

> Prøv den kode jeg gav dig over ICQ i går

Ok ! Det var bare mit indtryk at den kun virkede med et specielt unix
timestamp, men det vil jeg da prøve - jeg takker !

--
- Thomas
~~~~~~~~
.... http://www.FlowCode.f2s.com - where code flows
.... mailto:blomme@post.com - where email goes



Niels (29-06-2001)
Kommentar
Fra : Niels


Dato : 29-06-01 11:11

Just as I expected, Thomas P came up with this:

>> Prøv den kode jeg gav dig over ICQ i går

Den ser sådan her ud:

$ud = mktime(substr($ind, 8, 2), substr($ind, 10, 2), substr($ind, 12,
2), substr($ind, 4, 2), substr($ind, 6, 2), substr($ind, 0, 4));

>Ok ! Det var bare mit indtryk at den kun virkede med et specielt unix
>timestamp, men det vil jeg da prøve - jeg takker !

Den laver en TIMESTAMP fra MySQL om til et UNIX timestamp som du kan
bruge PHP's date() funktion til at formattere pænt, prøv at slå mktime()
og date() op i manualen!

Niels
--
http://www.niller.f2s.com/ - niLLer's pages, that's my software
http://g4s.dnsq.org/ - when I'm online
g4s ad post dot ocm - new email! (note: it's .com !)
ICQ#: 50187323

Thomas P (29-06-2001)
Kommentar
Fra : Thomas P


Dato : 29-06-01 12:42

*WEEE*

Fandt en funktion i det gamle phorum til at gøre det jeg har ledt efter

function date_format($datestamp){
$tzoffset = 0;
if ($datestamp == "0000-00-00") {
$datestamp = "0000-00-00 00:00:00";
}
list($date,$time) = explode(" ",$datestamp);
list($year,$month,$day) = explode("-",$date);
list($hour,$minute,$second) = explode(":",$time);
$hour = $hour + $tzoffset;
$tstamp = mktime($hour,$minute,$second,$month,$day,$year);
$sDate = date("d-m-y H:i",$tstamp);
return $sDate;
}

Desværre har jeg nu det problem, at datoerne er 1 eller 2 timer for tidligt
på den, idet serveren er lokaliseret andetsteds end Danmark Kan jeg gøre
op med det når jeg INSERT'er now() i mysql_databasen ?

--
- Thomas
~~~~~~~~
.... http://www.FlowCode.f2s.com - where code flows
.... mailto:blomme@post.com - where email goes



Niels (29-06-2001)
Kommentar
Fra : Niels


Dato : 29-06-01 14:10

Just as I expected, Thomas P came up with this:

>Desværre har jeg nu det problem, at datoerne er 1 eller 2 timer for tidligt
>på den, idet serveren er lokaliseret andetsteds end Danmark Kan jeg gøre
>op med det når jeg INSERT'er now() i mysql_databasen ?

Du kan jo trække det rigtige fra/lægge det til i kaldet til mktime()
funktionen... det burde give sig selv hvad du skal ændre på

Niels
--
http://www.niller.f2s.com/ - niLLer's pages, that's my software
http://g4s.dnsq.org/ - when I'm online
g4s ad post dot ocm - new email! (note: it's .com !)
ICQ#: 50187323

Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408868
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste