mktime w PHP

W funkcjach date(), getdate(), strftime() używaliśmy parametru $znacznik_czasu. Funkcja mktime pozwala na utworzenie takiego znacznika. Prawie wszystkie parametry tej funkcji są opcjonalne.

Funkcja zwraca liczbę sekund jak upłynęła od daty 1 stycznia 1970 00:00:00 GMT. Jest to tak zwana epoka Uniksa.

Składnia

mktime(godz[,min[,sek[,miesiac[,dzien[,rok]]]]]):int|false

Uwaga! wywołanie funkcji mktime() bez parametrów pozwala na utworzenie znacznika czasu bieżącego.

Parametry: godzina, minuta, sekunda, miesiąc, dzień i rok to parametry typu integer, które mogą być pomijane od prawej do lewej. Pominięcie pierwszego parametru jest dopuszczalne, choć w tym przypadku zaleca się użycie funkcji time. Docelowo pierwszy z parametrów ma być wymagany.

Przykład 1

<?php
echo 'Wywołanie mktime bez parametrów: ';
echo mktime();
echo '<br>Wywołanie mktime dla epoki Uniksa: '; echo mktime(1,0,0,1,1,1970); ?>

Zastosowanie

Do czego można użyć tej funkcji? Można ją zastosować przy obliczaniu ile czasu upłynęło między dwoma znacznikami czasu. Oto przykład:

Przykład 2

<?php
$rok1=2021;
$miesiac1=1;
$dzien1=1; $rok2=2021;
$miesiac2=1;
$dzien2=31;
$znacznik1=mktime(0,0,0,$miesiac1,$dzien1,$rok1);
$znacznik2=mktime(24,0,0,$miesiac2,$dzien2,$rok2); $sekund = $znacznik2-$znacznik1;
$minut = ceil($sekund/60);
$godzin = ceil($minut/60);
$dni = ceil($godzin/24); echo 'Między 1 a 31 stycznia 2021 r upłynęło:<br>'; echo 'sekund: '.$sekund.'<br>minut: '.$minut.'<br>godzin: '.$godzin.'<br>dni: '.$dni; ?>

Jak działa skrypt?

  1. Najpierw w zmiennych $rok1, $miesiac, $dzien - zapisujemy interesującą nas pierwszą z dat, w analogicznych zmiennych w kolejnym akapicie zapisujemy drugą z dat.
  2. Następnie tworzymy znaczniki czasu dla każdej z dat.
  3. Odejmując od siebie znaczniki otrzymamy liczbę sekund pomiędzy tymi datami.
  4. Następnie dzielimy otrzymaną liczbę sekund przez 60, otrzymując czas w minutach.
  5. Następnie dzielimy otrzymaną liczbę minut przez 60, otrzymując czas w godzinach.
  6. Następnie dzielimy otrzymaną liczbę godzin przez 24, otrzymując czas w dniach.
  7. Teraz wystarczy wyświetlić wszystkie otrzymane wyniki.




© medianauka.pl, 2021-10-24, A-4198



©® Media Nauka 2008-2023 r.