0Pricing
PHP Academy · Lekcja

Znaczniki czasu Unix i date()

Pobieraj bieżący czas jako znacznik czasu Unix i formatuj go za pomocą date()

Znaczniki czasu Unix i date() to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PHP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PHP Academy zawiera 4 lekcji w sumie.

Czas w PHP

PHP reprezentuje czas jako znacznik czasu Unix — liczbę sekund od 1 stycznia 1970 roku, godziny 00:00:00 UTC (epoki Unix). Najważniejsze funkcje:

  • time() — bieżący znacznik czasu Unix
  • date($format, $timestamp) — formatowanie znacznika czasu
  • mktime() — tworzenie znacznika czasu z poszczególnych elementów daty

time()

Pobierz bieżący znacznik czasu Unix:

<?php
$now = time();
echo $now;           // e.g. 1716800000
echo gettype($now);  // integer

// 1 day in seconds
$tomorrow = time() + 86400;
$yesterday = time() - 86400;

echo date('Y-m-d', $tomorrow);  // tomorrow's date

Znaki formatu date()

Typowe znaki formatu używane przez date():

  • Y — rok w formacie czterocyfrowym: 2024
  • m — miesiąc z zerem wiodącym: 01–12
  • d — dzień z zerem wiodącym: 01–31
  • H — godzina w formacie 24-godzinnym, z zerem wiodącym
  • i — minuty z zerem wiodącym
  • s — sekundy
  • D — skrócona nazwa dnia: Mon
  • N — dzień tygodnia według ISO: 1=Mon, 7=Sun

Formatowanie dat

Używaj date() do formatowania znaczników czasu:

<?php
$ts = time();

echo date('Y-m-d', $ts);           // 2024-05-27
echo date('d/m/Y', $ts);           // 27/05/2024
echo date('D, d M Y H:i:s', $ts);  // Mon, 27 May 2024 14:30:00
echo date('c', $ts);               // ISO 8601: 2024-05-27T14:30:00+00:00
echo date('U', $ts);               // Unix timestamp (same as time())

mktime()

Utwórz znacznik czasu z określonych elementów daty i godziny:

<?php
// mktime(hour, min, sec, month, day, year)
$ts = mktime(0, 0, 0, 12, 25, 2024);  // Christmas 2024 midnight
echo date('Y-m-d', $ts);  // 2024-12-25

// Last day of month trick:
$lastDay = mktime(0, 0, 0, 3, 0, 2024);  // day 0 = last day of Feb
echo date('Y-m-d', $lastDay);  // 2024-02-29 (leap year)

strtotime()

strtotime() konwertuje czytelny dla człowieka ciąg znaków z datą na znacznik czasu:

<?php
echo strtotime('2024-12-25');       // timestamp
echo strtotime('next Monday');      // next Monday's timestamp
echo strtotime('+1 week');          // 7 days from now
echo strtotime('last day of this month');  // end of month
echo strtotime('2024-01-01 +3 months');   // April 1, 2024

Działania na datach za pomocą strtotime

Obliczaj daty względne za pomocą wyrażeń względnych funkcji strtotime:

<?php
$subscriptionStart = strtotime('2024-01-15');
$oneYearLater = strtotime('+1 year', $subscriptionStart);
$trialEnd = strtotime('+14 days');

echo date('Y-m-d', $oneYearLater);  // 2025-01-15
echo date('Y-m-d', $trialEnd);      // 14 days from today

// Days until event:
$event = strtotime('2024-12-31');
$daysLeft = (int) (($event - time()) / 86400);
echo "Days until NYE: $daysLeft";

Znaczniki czasu i bazy danych

Przechowuj daty w bazie danych jako ciągi ISO lub znaczniki czasu Unix:

<?php
// Store as ISO string (recommended for readability):
$created_at = date('Y-m-d H:i:s');  // '2024-05-27 14:30:00'

// Store as Unix timestamp (fast integer comparison):
$created_ts = time();  // 1716800000

// Convert back:
$ts = strtotime($created_at);
$fmt = date('Y-m-d H:i:s', $created_ts);

date_create i date_format

Obiektowe alternatywy dla date() i strtotime():

<?php
$dt = date_create('2024-05-27');
echo date_format($dt, 'D, d M Y');  // Mon, 27 May 2024

date_modify($dt, '+30 days');
echo date_format($dt, 'Y-m-d');  // 2024-06-26

// Equivalent OO:
$dt2 = new DateTime('2024-05-27');
$dt2->modify('+30 days');
echo $dt2->format('Y-m-d');

checkdate()

Sprawdź za pomocą checkdate(), czy data jest prawidłowa:

<?php
var_dump(checkdate(2, 29, 2024));  // true (leap year)
var_dump(checkdate(2, 29, 2023));  // false (not leap year)
var_dump(checkdate(13, 1, 2024));  // false (no month 13)
var_dump(checkdate(1, 31, 2024));  // true

Microtime do testów wydajności

Użyj microtime(true), aby mierzyć czas wykonywania z dokładnością poniżej jednej sekundy:

<?php
$start = microtime(true);

// Simulate work
for ($i = 0; $i < 100000; $i++) {}

$end = microtime(true);
$duration = ($end - $start) * 1000;  // milliseconds
echo sprintf('Took %.2f ms', $duration);

Szybki test

Co zwraca funkcja PHP time()?

Podsumowanie: znaczniki czasu Unix i date()

Najważniejsze informacje:

  • time() — bieżący znacznik czasu Unix
  • date($format, $ts) — formatowanie dowolnego znacznika czasu
  • mktime() — tworzenie znacznika czasu z elementów daty
  • strtotime() — analizowanie czytelnych dla człowieka dat
  • Do przechowywania dat w bazie danych używaj formatu ISO 8601
  • microtime(true) — pomiar czasu z wysoką rozdzielczością

Często zadawane pytania

Czy lekcja „Znaczniki czasu Unix i date()” jest bezpłatna?

Tak — pełny tekst „Znaczniki czasu Unix i date()” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PHP Academy, przejdź na CoddyKit PRO. Kurs PHP Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Znaczniki czasu Unix i date()”?

Pobieraj bieżący czas jako znacznik czasu Unix i formatuj go za pomocą date() Ćwiczysz PHP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć PHP Academy?

Nie wymagamy żadnego doświadczenia. PHP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Znaczniki czasu Unix i date()”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji PHP Academy?

Tak. Każda lekcja PHP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Znaczniki czasu Unix i date()
  2. Klasa DateTime
  3. Działania na datach za pomocą DateInterval
  4. Strefy czasowe w PHP
← Powrót do PHP Academy