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") = 149
Swatch Internet time

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

date("r") = Sat, 18 Nov 2017 04:35:38 +0200
RFC 822 formatterat datum:
"Thu, 21 Dec 2000 16:01:07 +0200" PHP 4.0.4 =>

date("s") = 38
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") = EET
Tidszon inställning. t.ex.MDT

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

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

date("W") = 46
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") = 321
Dag i året: 0 - 365

date("Z") = 7200
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: 04:35:38

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
20.2.2018
Resultat av listning 1.11.2

 

   Börja härDatum