PHP Date() & Time Funktion: Hur får man aktuell tidsstämpel?

⚡ Smart sammanfattning

PHP date()-funktionen formaterar tidsstämplar till läsbara datum och tider. Denna genomgång förklarar datumsyntaxen, Unix-tidsstämpeln, hur man listar och ställer in tidszoner, mktime-funktionen för att skapa tidsstämplar och en fullständig referens till tecken för tid, dag, månad och år.

  • 📅 Vad date() gör: Datumfunktionen omvandlar en tidsstämpel till en formaterad sträng med tecken som Y, m och d för år, månad och dag.
  • ⏱️ Unix-tidsstämpel: En tidsstämpel är antalet sekunder sedan den 1 januari 1970 GMT, och time() returnerar det aktuella värdet.
  • 🌍 Tidszoner: date_default_timezone_set ändrar den aktiva tidszonen, och DateTimeZone::listIdentifiers listar alla zoner som stöds.
  • 🔧 mktime: Funktionen mktime bygger en tidsstämpel från en specifik timme, minut, sekund, månad, dag och år.
  • 🔤 Formatera tecken: Enskilda bokstäver styr utdata, till exempel H för 24-timmarstid, l för veckodagens namn och F för månadens namn.
  • 📐 Referenstabeller: Grupperade tabeller listar tecken för tid, dag, månad och år med ett körbart exempel för varje tecken.
  • 🤖 AI Assist: AI-verktyg kan generera datumformatering och skillnadskod och hjälpa till att lösa förvirrande tidszonsfel.

PHP date () Funktion

PHP date () Funktion

PHP-funktionen datum är en inbyggd funktion som förenklar arbetet med datumdatatyper. PHP-funktionen datum används för att formatera ett datum eller en tid till ett läsbart format. Den kan användas för att visa datumet då en artikel publicerades eller registrera när data i en databas senast uppdaterades.

PHP Datum Syntax & Exempel

PHP date() har följande grundläggande syntax.

<?php
date(format,[timestamp]);
?>

HÄR,

  • ”date(…)” är funktionen som returnerar den aktuella tidsstämpeln formaterad i PHP på servern.
  • ”Format” är det allmänna format vi vill att vår utdata ska ha, till exempel:
    • ”Ymd” för PHP-datumformatet ÅÅÅÅ-MM-DD
    • "Y" för att visa aktuellt år
  • ”[tidsstämpel]” är valfritt. Om ingen tidsstämpel har angetts kommer PHP att använda aktuellt datum och tid på servern.

Låt oss titta på ett enkelt exempel som visar innevarande år.

<?php

echo date("Y");

?>

Produktion:

2026

Vad är en tidsstämpel?

En tidsstämpel i PHP är ett numeriskt värde i sekunder mellan aktuell tid och värdet vid 1.st Januari 1970 00:00:00 Greenwich Mean Time (GMT).

Värdet som returneras av tidsfunktionen beror på standardtidszonen.

Standardtidszonen ställs in i php.ini-filen. Den kan också ställas in programmatiskt med funktionen date_default_timezone_set.

Koden nedan visar den aktuella tidsstämpeln.

<?php

echo time();

?>

Om du antar att du sparade filen timestamp.php i mappen phptuts, bläddra till URL http://localhost/phptuts/timestamp.php

Timestamp

Obs: tidsstämpelns värde är inte konstant. Det ändras varje sekund.

Hämtar en lista över tillgängliga tidszonsidentifierare

Innan vi tittar på hur man ställer in standardtidszonen programmatiskt, låt oss titta på hur man får en lista över tidszoner som stöds.

<?php

$timezone_identifiers = DateTimeZone::listIdentifiers();

foreach($timezone_identifiers as $key => $list){

echo $list . "<br/>";

}
?>

HÄR,

  • "$timezone_identifiers = DateTimeZone::listIdentifiers();" anropar den statiska metoden listIdentifiers i den inbyggda klassen DateTimeZone. Metoden listIdentifiers returnerar en lista över identifierare som är tilldelade variabeln $timezone_identifiers.
  • ”foreach{…}” itererar genom arrayen och skriver ut värdena.

Om du antar att du sparade filen list_time_zones.php i mappen phptuts, bläddra till URL http://localhost/phptuts/list_time_zones.php

Tidszonsidentifierare

PHP ställer in tidszon programmerat

Funktionen date_default_timezone_set låter dig ställa in standardtidszonen från ett PHP-skript.

Den inställda tidszonen kommer då att användas för alla datum PHP-funktioner i dina skript. Den har följande syntax.

<?php
date_default_timezone_set(string $timezone_identifier);
?>

HÄR,

  • "date_default_timezone_set()" är funktionen som anger standardtidszonen
  • "string $timezone_identifier" är tidszonsidentifieraren

Skriptet nedan visar tiden enligt standardtidszonen som är inställd i php.ini. Sedan ändras standardtidszonen till Asien/Calcutta och tiden visas igen.

<?php
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");

date_default_timezone_set("Asia/Calcutta");
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");
?>

Om du har sparat filen set_time_zone.php i mappen phptuts, bläddra till URL http://localhost/phptuts/set_time_zone.php

PHP ställer in tidszon programmerat

PHP Mktime-funktion

Funktionen mktime returnerar tidsstämpeln i a Unix format.

Den har följande syntax.

<?php
mktime(hour, minute, second, month, day, year, is_dst);
?>

HÄR,

  • "mktime(...)" är funktionen make PHP-tidsstämpel
  • ”timme” är valfritt; det är timtalet
  • ”Minut” är valfritt; det är antalet minuter
  • ”sekund” är valfritt; det är antalet sekunder
  • ”månad” är valfritt; det är månadens nummer
  • ”dag” är valfritt; det är dagens nummer
  • ”År” är valfritt; det är årets nummer
  • ”is_dst” är valfritt; det används för att bestämma sommartiden (DST). 1 står för DST, 0 om den inte är det och -1 om den är okänd.

Låt oss nu titta på ett exempel som skapar en tidsstämpel för datumet 13/10/2025 med hjälp av funktionen mktime.

<?php

echo mktime(0,0,0,10,13,2025);

?>

HÄR,

  • "0,0,0" är timmen, minuten respektive sekunderna.
  • "10" är månaden på året
  • "13" är dagen i månaden
  • "2025" är året

Produktion:

1760328000

PHP-datumformatreferens

Tabellerna nedan visar de vanliga formattecken som används när man arbetar med PHP-datumfunktioner.

Tidsparametrar

Parameter BESKRIVNING Exempelvis
"R" Returnerar hela datumet och tiden
<?php
echo date("r");
?>
"en", "En" Returnerar om den aktuella tiden är am eller pm, AM eller PM respektive
<?php
echo date("a");
echo date("A");
?>
"g", "G" Returnerar timmen utan inledande nollor [1 till 12], [0 till 23] respektive
<?php
echo date("g");
echo date("G");
?>
"h", "H" Returnerar timmen med inledande nollor [01 till 12] respektive [00 till 23].
<?php
echo date("h");
echo date("H");
?>
"jag", "s" Returnerar minuter/sekunder med inledande nollor [00 till 59]
<?php
echo date("i");
echo date("s");
?>

Dagsparametrar

Parameter BESKRIVNING Exempelvis
“D” Returnerar dagen i månaden med inledande nollor [01 till 31]
<?php
echo date("d");
?>
"j" Returnerar dagen i månaden utan inledande nollor [1 till 31]
<?php
echo date("j");
?>
”D” Returnerar de första 3 bokstäverna i dagens namn [sön till lör]
<?php
echo date("D");
?>
"l" Returnerar veckans dagnamn [söndag till lördag]
<?php
echo date("l");
?>
"I" Returnerar veckodagen utan inledande nollor [0 till 6]; söndag representeras av noll (0) till och med lördag representeras av sex (6)
<?php
echo date("w");
?>
"z" Returnerar dagen på året utan inledande mellanslag [0 till 365]
<?php
echo date("z");
?>

Månadsparametrar

Parameter BESKRIVNING Exempelvis
”M” Returnerar månadsnumret med inledande nollor [01 till 12]
<?php
echo date("m");
?>
"N" Returnerar månadsnumret utan inledande nollor [1 till 12]
<?php
echo date("n");
?>
”M” Returnerar de tre första bokstäverna i månadens namn [Jan till Dec]
<?php
echo date("M");
?>
"F" Returnerar månadens namn [januari till december]
<?php
echo date("F");
?>
“T” Returnerar antalet dagar i en månad [28 till 31]
<?php
echo date("t");
?>

Årsparametrar

Parameter BESKRIVNING Exempelvis
”L” Returnerar 1 om det är ett skottår och 0 om det inte är ett skottår
<?php
echo date("L");
?>
"Y" Returnerar fyrsiffrigt årsformat
<?php
echo date("Y");
?>
"Y" Returnerar det tvåsiffriga årsformatet (00 till 99)
<?php
echo date("y");
?>

Vanliga frågor

date() är en enkel procedurell funktion som formaterar en tidsstämpel. DateTime-klassen är objektorienterad och stöder aritmetik, jämförelse, tidszoner och oföränderlighet, vilket gör den bättre för komplex datumlogik i större applikationer.

Använd strtotime(), som läser format som '2025-10-13' eller 'nästa Monday' och returnerar en Unix-tidsstämpel. För strikt parsning av ett känt format är DateTime::createFromFormat säkrare eftersom det tydligt misslyckas vid ogiltig inmatning.

Skapa två DateTime-objekt och anropa diff(), vilket returnerar ett DateInterval. Du kan sedan läsa dagar, månader eller år, till exempel $start->diff($end)->days för att få det totala antalet dagar mellan datumen.

Ja. Beskriv in- och utdataformaten, så kan AI producera date(), DateTime eller strtotime-kod, inklusive att lägga till intervall eller konvertera tidszoner. Testa det med kantfall som skottår och månadsslut.

Ja. AI kan upptäcka ett saknat date_default_timezone_set-anrop, en tidszon som inte matchar mellan server och display eller sommartidsproblem, och sedan rekommendera att använda DateTime med explicita tidszoner för att göra beteendet förutsägbart.

Sammanfatta detta inlägg med: