gmmktime în PHP

Construiește timestamp-ul pentru o dată și o oră exprimate în UTC, indiferent de fusul orar setat.

Sintaxă
gmmktime(int $hour, ?int $minute = null, ?int $second = null, ?int $month = null, ?int $day = null, ?int $year = null): int|false

Ce face gmmktime

gmmktime are aceiași parametri ca mktime, în aceeași ordine (ora, minutul, secunda, luna, ziua, anul). Diferența: valorile sunt interpretate ca ora UTC, nu ca ora din fusul orar curent.

Este utilă când primești o dată în UTC (de la un API, dintr-un jurnal) și vrei timestamp-ul corect. Valorile din afara intervalului sunt corectate la fel ca la mktime.

Parametri

Parametru Descriere
$hour Ora în UTC.
$minute, $second Opțional. Minutul și secunda.
$month, $day, $year Opțional. Luna, ziua și anul.

Ce returnează

Timestamp-ul Unix, sau false la eroare.

Exemple

Exemplul 1: Același text, timestamp-uri diferite

Ora 12:00 în UTC este ora 15:00 în România (ora de vară), deci diferența este de 3 ore.

<?php
date_default_timezone_set("Europe/Bucharest");

$utc = gmmktime(12, 0, 0, 10, 19, 2026);
$local = mktime(12, 0, 0, 10, 19, 2026);

echo ($utc - $local) / 3600 . " ore diferență\n";
echo "12:00 UTC este " . date("H:i", $utc) . " în România";

Rezultat

3 ore diferență
12:00 UTC este 15:00 în România

Greșeli frecvente

  • Folosești gmmktime pentru o oră locală introdusă de utilizator. Rezultatul iese decalat cu 2-3 ore. Pentru ora locală folosește mktime.

Comenzi înrudite

  • mktime: Construiește timestamp-ul Unix pentru o dată și o oră anume, din ore, minute, secunde, lună, zi și an.
  • gmdate: Formatează o dată la fel ca date(), dar mereu în ora UTC (GMT), indiferent de fusul orar setat.
  • date_default_timezone_set: Setează fusul orar folosit de toate funcțiile de dată din script, de exemplu Europe/Bucharest.