8
Tags:
php
Skrevet af
Bruger #6283
@ 06.09.2004
Lidt om tid, dag, dato osv - Absolut begyndere
-----------------------------------------------------
ForordDenne artikkel er beregnet til absolut begyndere som ønsker at indsætte dags dato, tid eller lign på deres side.
Den er forsøgt skrevet til begyndere og er derfor ikke velegnet hvis man har erfaring.
Det er meningen at folk uden erfaring kan starte let og stille og roligt her, lige efter de har lært det allermest grundlæggende.
Men den kan også bruges af folk der skal friske deres viden op.
Nogle eksempler er lavet mere avanceret end nødvendigt hvis de på den måde bliver mere overskuelige for brugeren.
------------------------------------------------------
Selve artiklen Jeg vil her vise hvordan man får tid, dato osv indsat på ens sider. Jeg vil i den forbindelse også gå ind og se på hvordan vi får den til at skrive dagene og månederne på dansk istedet for engelsk.
Vi starter her med at introducere funktionen date(). Denne bruges til det meste i denne artikel.
ListenDate() kan kaldes med en masse funktioner, her er nogle eksempler:
a = erstattes af am eller pm
A = erstattes af AM eller PM
d = dag i måned f.eks. 04 (to cifre)
j = dag i måned f.eks. 4 (et cifre)
w = Dagens nummer (søndag=0 , mandag=1, tirsdag=2 osv)
z = Dagens nummer i dette år (0-365)
D = Dag i denne uge i tre bogstaver (bemærk engelsk)
i = dag i denne uge som fuldt navn (bemærk engelsk)
m = Månedens nummer f.eks. 04 (to cifre)
n = Månedens nummer (1 cifre)
M = Månedens navn 3 bogstaver engelsk
F = Månedens fulde navn engelsk
t = Antal dage i måneden dvs 28 - 31
Y = Årstal i 4 cifre
y = Årstal 2 cifre
L = 1 hvis skudår - 0 hvis ikke
h = Timetal 01-12 (2 cifre)
H = Timetal 00-24 (2 cifre)
g = Timetal 1-12 (1 cifre)
G = Timetal 1-24 (1 cifre)
i = Minuttal (00 - 59)
s = Sekundtal (00-59)
S = engelsk endelse på tal (th og td)
EksemplerneLad os springe direkte ud i et eksempel:
<?php
echo $dato = date("d/m-Y");
?>
Som du kan se udskrives datoen i dag her.
echo = bruges til at udskrive med i php
$dato = Variabel den gemmes i (kan evt undlades)
date() = Funktionen date
d/m-Y = formatet - se listen ovenfor.
d = dag i måned f.eks. 04 (to cifre)
m = Månedens nummer f.eks. 04 (to cifre)
Y = Årstal i 4 cifre
Vi tager lige et eksempel til inden vi går vider med at få det på dansk:
<?php
echo $dage_i_maaned = date("G");
?>
Udskriver antal dage i denne måned.
Den kan evt bruges til at regne med således:
<?php
$dage_i_maaned = date("t");
$dato = date("d");
echo $tilbage = $dage_i_maaned - $dato;
?>
Her finder vi først antal dage i denne måned
Så finder vi datoen i dag.
Herefter udskriver vi dage i måned - dato og får antal dage tilbage.
Eksempler på dansk oversættelseDet var så det grundlæggende.
Nu skal vi igang med et eksempelhvor vi får udskrevet dagens navn på dansk. Vi benytter ikke "l" som henter dagens navn på engelsk, men derimod "w" som henter dagens nummer. Husk at 0 = søndag.
<?
$dag = date("w");
$navndag[0] = "søndag";
$navndag[1] = "mandag";
$navndag[2] = "tirsdag";
$navndag[3] = "onsdag";
$navndag[4] = "torsdag";
$navndag[5] = "fredag";
$navndag[6] = "lørdag";
echo $navndag[$dag];
?>
Her henter vi først numret på dagen.
Så laver vi et array hvor dagenes navne står i. Læg mærke til at 0 er som søndag.
Tilsidst udskriver vi arrayet og vælger at den skal vælge $dag som parameter. Og $dag er jo numret den hentede øverst.
På nøjagtig samme måde kan det gøres med måned:
<?
$maaned = date("n");
$navnmaaned[1] = "januar";
$navnmaaned[2] = "februar";
$navnmaaned[3] = "marts";
$navnmaaned[4] = "april";
$navnmaaned[5] = "maj";
$navnmaaned[6] = "juni";
$navnmaaned[7] = "juli";
$navnmaaned[8] = "august";
$navnmaaned[9] = "september";
$navnmaaned[10] = "oktober";
$navnmaaned[11] = "november";
$navnmaaned[12] = "december";
echo $navnmaaned[$maaned];
?>
Sådan gøres det.
Sammensæt detHerunder kan du så se hvordan man kan sammensætte flere ting. I følgende eksempel sammensætter vi dag og dato så det blir f.eks. fredag d. 13/07-2005
<?
$dag = date("w");
$navndag[0] = "søndag";
$navndag[1] = "mandag";
$navndag[2] = "tirsdag";
$navndag[3] = "onsdag";
$navndag[4] = "torsdag";
$navndag[5] = "fredag";
$navndag[6] = "lørdag";
$dato = date("d/m-Y");
echo $navndag[$dag]." d. ".$dato;
?>
Den sidste sætning er lavet sådan efter echo:
Først henter vi navnet på dagen
Så bruger vi et . til at binde det hele sammen til en sætning.
Så skriver "" tegn med d. imellem som udskriver d. (fredag
d. 12/12-2005)
Så et . igen til at binde det sammen
Og til sidst hentes datoen.
Så skulle du efterhånden være helt inde i tid, dato osv.
I mere avanceret eksempler vil man gå ind og regne med unix epoch som er en måde at måle tid på. Denne måler tiden i sek siden 1 jan 1970.
Kan hentes med U i date() sæningen. Man kan også få den til at returnere unix epoch tallet fra en given dato med funktionen mktime().
Men alt dette kommer artiklen ikke til at handle om da det jo er en absolut begynder artikel.
Men da jeg ved nogle jo er interesseret vil jeg lige skrive det. Så kan de jo søge på nogle af ordene (unix epoch, date("U" eller mktime på php.net ved funktioner)
Jeg håber du kan lide artiklen og hører gerne lidt respons.
Artiklen blir gerne tilpasset undervejs hvis dette blir nødvendigt.
Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.
Del også gerne artiklen med dine Facebook venner:
Kommentarer (13)
Denne artikel kunne lige så godt have været et link til www.php.net/date!
Det er korrekt, men der er desværre en del nybegyndere som ikke kender til php.net/whatever eller bliver afskrækket af at alt er på engelsk. Derfor blev artiklen godkendt alligevel, omend til et lavt antal point.
Jeg har efterhånden arbejdet med PHP et stykke tid, og vil give KasperTech ret i det han siger, men jeg synes alligevel artikleren fortjener ros, for den er skrevet i et godt sprog, og er nem at forstå.
Selv kendte jeg heller ikke alle de funktioner man kunne bruge, når man arbejdede med tid, så den hjalp også mig.
Der er vist kommet en tryk fejl. I teksten står der:
---
Vi tager lige et eksempel til inden vi går vider med at få det på dansk:
<?php
echo $dage_i_maaned = date("G");
?>
Udskriver antal dage i denne måned.
---
Listen, og php.net, siger at Date("G") giver timetallet. Elers en ok artikel
Der skal bruges j
Artikelen er skrevet til absolut nybegyndere i et let sprog som (forhåbentlig) er til at forstå. Den skal give folk hjælp til at prøve at komme igang, imodsætning til php.net som kan virke uoverskuelig og svær at forstå for nybegyndere. Den er slet ikke beregnet til folk der i forvejen er ørne til det.
Tak for kommentarene so far, og godt mht at I fik rettet fejlen
Faktisk en udemærket artikel... Lærte selv noget selvom jeg har arbejdet med php i snart et halvt år... Alle de funktioner der er til date anede jeg ikke noget om... ;o)
Thumbs up herfra
Synes du bruger date lige lovligt overflødigt, for at tage et eksempel:
---------------------------------------
<?
$dag = date("w");
$navndag[0] = "søndag";
$navndag[1] = "mandag";
$navndag[2] = "tirsdag";
$navndag[3] = "onsdag";
$navndag[4] = "torsdag";
$navndag[5] = "fredag";
$navndag[6] = "lørdag";
echo $navndag[$dag];
?>
---------------------------------------
Denne brug af date er komplet unødvendig, det kræver langt mere end en simpel omgang:
---------------------------------------
<?php
setlocale(LC_ALL, "Danish");
print ucfirst(strftime("%A"));
---------------------------------------
som vil returnere Mandag, Tirsdag etc - alt efter hvilken dag det er.
En ting man skal vide ved strftime, er at det ikke er alle de dokumenterede funktioner der virker under windows ... Jeg løb ind i den her %e som skulle give en dato uden 0 foran (den 08. oktober, skulle være den 8. oktober) ... Men dette kan man klare ved %#d som fjerner 0. Den eneste forskel er (ret mig her hvis jeg tager fejl) at ved brug af %#d sniger der sig et uønsket mellemrum ind.
Nyttig til nyheds-systemer
Meget nyttigt
Hej, jeg er ikke lige den mest øvede inden for php'en, men jeg må sige at jeg lærte lidt mere om sproget, især det med at man kan bruge en array på den måde.
men der ved dagene i arrayen, skal man ikke bruge ++ forat få det rigtige resultat?
Mvh.
Jacob
Du skal være
logget ind for at skrive en kommentar.