Behärska PHP Date(): Formatera datum och tid som ett proffs

17 november 2025

PHP:s date() Funktionen är ett av de mest kraftfulla och vanligaste verktygen för att hantera formatering av datum och tid i webbapplikationer. Oavsett om du bygger en blogg, en e-handelsplattform eller en instrumentpanel är det avgörande att visa datum på ett användarvänligt sätt. I den här omfattande guiden,
Vi ska gå på djupet med
date() funktionen, utforska dess syntax, formatangivelser, exempel från verkligheten, bästa praxis och vanliga fallgropar.

Vad är PHP-funktionen Date()?

De date() Funktionen i PHP formaterar ett lokalt datum och en lokal tid enligt en angiven formatsträng. Den returnerar en sträng som representerar det formaterade datumet och den formaterade tiden.

Grundläggande syntax

php

string date(string $format, ?int $timestamp = null)

  • $-format: En sträng som innehåller formatangivelser (t.ex., Y, m, d).
  • $-tidsstämpel: Valfri Unix-tidsstämpel. Om den utelämnas används den aktuella tiden.

Anmärkning: Från och med PHP 8.0+ är den andra parametern nullbar (?int).

Viktiga specifikatorer för datumformat i PHP

Här är en översiktstabell över de vanligaste formattecknen:

SpecificerareBeskrivningExempel på utdata
Y4-siffrigt år2026
y2-siffrigt år25
mMånad (01–12)11
nMånad utan inledande nollor (1–12)11
FHela månadsnamnetnovember
MKort månadsnamn (3 bokstäver)nov
dDag i månaden med inledande nollor17
jDag utan inledande nollor17
lFullständigt namn på veckodagMåndag
DKort vardag (3 bokstäver)Mån
H24-timmarsformat (00–23)11
h12-timmarsformat (01–12)11
iMinuter med inledande nollor37
sSekunder med inledande nollor45
AVersaler AM/PMAM
aSmå bokstäver i am/pmpå morgonen
TFörkortning för tidszonIST
cISO 8601-format2026-11-17T11:37:45+05:30
rRFC 2822-format
Mån, 17 nov 2026 11:37:45
+0530

Grundläggande exempel på datumformat i PHP

1. Aktuellt datum och tid

php

echo datum(‘Å-m-d H:i:s’); 

// Utdata: 2026-11-17 11:37:45
2. Läsbart format

php

echo datum(‘l, F j, Y \a\t g:i A’); 

// Utdata: måndagen den 17 november 2026 kl. 11:37

Användning \ för att ersätta tecken som så att de visas bokstavligen.

3. Kort datum

php

echo date('d/m/Y'); 

// Utdata: 17/11/2026
4. Endast tid

php

echo date('h:i A'); 

// Utdata: 11:37

Arbeta med tidsstämplar

Du kan formatera vilken Unix-tidsstämpel som helst:

php

$timestamp = strtotime('2026-01-01 00:00:00');

echo date('Y-m-d', $timestamp);

// Utdata: 2026-01-01
Kombinera med strtotime()

php

echo date('F j, Y', strtotime('+7 dagar'));

// Utdata: 24 november 2026

Hantering av tidszoner (Viktigt!)

Som standard, date() använder serverns standardtidszon. Ange alltid tidszonen uttryckligen:

php

date_default_timezone_set('Asia/Kolkata'); // IST

echo date('Å-m-d H:i:s T');

// Utdata: 2026-11-17 11:37:45 IST

Bästa praxis: Ange tidszonen högst upp i din konfigurationsfil eller i startfilen.

Praktiska användningsexempel för datumformat i PHP

1. Datum för blogginlägg

php

$post_date = '2026-11-10 14:30:00';

echo date('M j, Y', strtotime($post_date));

// Utdata: 10 nov 2026
2. Relativ tid (“för 2 timmar sedan”)

php

funktion timeAgo($timestamp) {

    $diff = time() - $timestamp;

    if ($diff < 60) return "för $diff sekunder sedan";

    if ($diff < 3600) return round($diff/60) . " minuter sedan";

    if ($diff < 86400) return round($diff/3600) . " timmar sedan";

    return date('M j', $timestamp);

}

echo timeAgo(strtotime('2026-11-17 09:00:00'));

// Utmatning: för 2 timmar sedan
3. Nedräkning till evenemanget

php

$event = strtotime('2026-12-25 00:00:00');

$now = time();

$days_left = floor(($event - $now) / 86400);

echo "Det är $days_left dagar kvar till jul!";

// Utdata: Det är 38 dagar kvar till jul!

Vanliga fallgropar och hur man undviker dem

FrågaLösning
Fel tidszonAnvänd alltid date_default_timezone_set()
Y2K-liknande buggar med yFöredrar Y för helåret
Förvirring kring inledande nollorAnvändning j istället för d om du inte vill ha nollor
SpråkinställningsproblemAnvändning setlocale() + strftime() för lokaliserade namn
Kommer det att fasas ut i framtiden?Nej! Men tänk på följande Datum och tid för komplexa operationer

Proffstips

1. Använd Datum och tid för avancerade behov

2. php

$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));

3. echo $dt->format('Å-m-d H:i:s');

4. Cachelagring av formaterade datum
Undvik att ringa date() i loopar för bättre prestanda.

5. Kontrollera tidsstämplarna i indata

6. php

if ($timestamp === false) {

    $timestamp = time();

7. }

8. Internationalisering

9. php

setlocale(LC_TIME, 'hi_IN');

10. echo strftime('%e %B %Y'); // Datum på hindi

Bonus: Datumformat i en rad

php
// ISO
date('c');

// Amerikanskt format
date('m/d/Y h:i A');

// EU-format
date('d.m.Y H:i');

Slutsats

Mastering date() handlar om att förstå dess formatangivelser, hantering av tidszoner, och integration med strtotime(). Medan Datum och tid ger mer prestanda för komplexa scenarier, date() är fortfarande lättviktig, snabb och perfekt för 90% olika användningsfall. Carmatec, ett ledande PHP utvecklingsföretag, utnyttjar för att tillhandahålla ren, effektiv och tillförlitlig tidsbaserad funktionalitet.