några sidor på nätet om PHP programmering

Sök efter  
Börja här Uppgifter Testa dig själv Tips Sidokarta mm. Länkar Sök

1.11 Datum

Se mer i manualen: sidan om datetime *

Normala tider antas vara efter 1 januari 1970.

date

Funktionen date kan användas för att antingen få nuvarade tid formaterat som man vill, eller skapa ett datum. För skapande av datum används oftast mktime, se nedan. Man använder koder för att få in de olika delarna i en tid /datum.

 

<?php
    
# alla format för tid
    
$format["a"] = "am eller pm";
    
$format["A"] = "AM eller PM";
    
$format["B"] = "Swatch Internet time";
    
$format["d"] = "Dag i månaden, 2 siffror med 0-utfyllnad: 01 - 31";
    
$format["D"] = "Engelsk förkortning av veckodagen";
    
$format["F"] = "Engelskt namn på månaden";
    
$format["g"] = "Timme 12-timmars format utan 0-utfylldnad: 1 - 12";
    
$format["G"] = "Timme 24-timmars format utan 0-utfylldnad: 0 - 23";
    
$format["h"] = "Timme 12-timmars format med 0-utfylldnad:  01 - 12";
    
$format["H"] = "Timme 24-timmars format med 0-utfylldnad: 00 - 23";  
    
$format["i"] = "Minuter: 00- 59";
    
$format["I"] = "(stora i) 1 om sommartid, 0 annars";
    
$format["j"] = "Dag i månaden, 2 siffror utan 0-utfyllnad: 1 - 31";
    
$format["l"] = "(Lilla L) Veckodagens (Engelska) namn";
    
$format["L"] = "1 om skottår, 0 annars";
    
$format["m"] = "Månadens nummer med 0-utfyllnad: 01 - 12";
    
$format["M"] = "Månadens (engelsk) förkortning";
    
$format["n"] = "Månadens nummer utan 0-utfyllnad: 1 - 12";
    
$format["O"] = "Skillnaden från Greenwich tid i timmar +0200
                    (- är västerut + är österut)"
;
    
$format["r"] = "RFC 822 formatterat datum:
                    \"Thu, 21 Dec 2000 16:01:07 +0200\" PHP 4.0.4 =>"
;
    
$format["s"] = "Sekunder 00 - 59";
    
$format["S"] = "Engelskt suffix, 2 tecken: th, nd, rd";
    
$format["t"] = "Amtal dagar i aktuell månad:  28 - 31";
    
$format["T"] = "Tidszon inställning. t.ex.MDT";
    
$format["U"] = "Sekunder sedan epoken (?)";
    
$format["w"] = "Veckodag 0 = Söndag - 6 Lördag";
    
$format["W"] = "ISO-8601 wekckonummer PHP 4.1.0 =>";
    
$format["Y"] = "År med 4 siffror: 2002";
    
$format["y"] = "År med 2 siffror: 02";
    
$format["z"] = "Dag i året: 0 - 365";
    
$format["Z"] = "Sekunder från UTC (Greenwich): -43200 - 43200
                    (- är västerut + är österut)"
;
    echo
"<dl>";        
    foreach (
$format as $tecken=>$betydelse)
    {
        echo
"<dt><br>date(\"" .$tecken . "\") = " . date($tecken) ;
        echo
"<dd>" . nl2br($betydelse) ;
    }
    echo
"</dl>";
?>
Listning 1.11.1 - samples/s88.php


date("a") = am
am eller pm

date("A") = AM
AM eller PM

date("B") = 997
Swatch Internet time

date("d") = 25
Dag i månaden, 2 siffror med 0-utfyllnad: 01 - 31

date("D") = Mon
Engelsk förkortning av veckodagen

date("F") = September
Engelskt namn på månaden

date("g") = 1
Timme 12-timmars format utan 0-utfylldnad: 1 - 12

date("G") = 1
Timme 24-timmars format utan 0-utfylldnad: 0 - 23

date("h") = 01
Timme 12-timmars format med 0-utfylldnad: 01 - 12

date("H") = 01
Timme 24-timmars format med 0-utfylldnad: 00 - 23

date("i") = 57
Minuter: 00- 59

date("I") = 1
(stora i) 1 om sommartid, 0 annars

date("j") = 25
Dag i månaden, 2 siffror utan 0-utfyllnad: 1 - 31

date("l") = Monday
(Lilla L) Veckodagens (Engelska) namn

date("L") = 0
1 om skottår, 0 annars

date("m") = 09
Månadens nummer med 0-utfyllnad: 01 - 12

date("M") = Sep
Månadens (engelsk) förkortning

date("n") = 9
Månadens nummer utan 0-utfyllnad: 1 - 12

date("O") = +0300
Skillnaden från Greenwich tid i timmar +0200
(- är västerut + är österut)

date("r") = Mon, 25 Sep 2017 01:57:02 +0300
RFC 822 formatterat datum:
"Thu, 21 Dec 2000 16:01:07 +0200" PHP 4.0.4 =>

date("s") = 02
Sekunder 00 - 59

date("S") = th
Engelskt suffix, 2 tecken: th, nd, rd

date("t") = 30
Amtal dagar i aktuell månad: 28 - 31

date("T") = EEST
Tidszon inställning. t.ex.MDT

date("U") = 1506293822
Sekunder sedan epoken (?)

date("w") = 1
Veckodag 0 = Söndag - 6 Lördag

date("W") = 39
ISO-8601 wekckonummer PHP 4.1.0 =>

date("Y") = 2017
År med 4 siffror: 2002

date("y") = 17
År med 2 siffror: 02

date("z") = 267
Dag i året: 0 - 365

date("Z") = 10800
Sekunder från UTC (Greenwich): -43200 - 43200
(- är västerut + är österut)
Resultat av listning 1.11.1

Om man vill få in något av de reserverade tecknen och inte vill att detta skall tolkas så måste man sätta \ före. Om tecknet har en allmän betydelse i PHP, t.ex. \n (radbyte) måste man sätta \\n. Tex:

date("\\t\i\d: h:i:s"); ger tid: 01:57:02

mktime

<?php
    
# Parametrarna är
    # timme
    # minut
    # sekund
    # månad
    # dag
    # år
    
    
$tid = mktime(22, 12, 12, 10, 21, 2002 );
    echo
$tid . "<br>";
    echo
date("j.n.Y h:i:s", $tid ) . "<br>";

    
# är man inte intresserad av t.ex timmar kan man sätta 0
    
$tid = mktime(0, 0, 0, 7, 11, 2002 );
    echo
date("j.n.Y", $tid ) . "<br>";

    
# om en siffra är för stor sker en automatisk och korrekt omvandling
    # 11.13.2002 blir således 11.1.2003
    
$tid = mktime(0, 0, 0, 13, 11, 2002 );
    echo
date("j.n.Y", $tid ) . "<br>";

    
# idag + 3 månder och 2 dar
    
$tid = mktime(0, 0, 0, date("n") + 3, date("j") + 2 , date("Y") );    
    echo
date("j.n.Y", $tid ) . "<br>";
?>
Listning 1.11.2 - samples/s89.php

1035227532
21.10.2002 10:12:12
11.7.2002
11.1.2003
27.12.2017
Resultat av listning 1.11.2

 

   Börja härDatum