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?
- Najpierw w zmiennych $rok1, $miesiac, $dzien - zapisujemy interesującą nas pierwszą z dat, w analogicznych zmiennych w kolejnym akapicie zapisujemy drugą z dat.
- Następnie tworzymy znaczniki czasu dla każdej z dat.
- Odejmując od siebie znaczniki otrzymamy liczbę sekund pomiędzy tymi datami.
- Następnie dzielimy otrzymaną liczbę sekund przez 60, otrzymując czas w minutach.
- Następnie dzielimy otrzymaną liczbę minut przez 60, otrzymując czas w godzinach.
- Następnie dzielimy otrzymaną liczbę godzin przez 24, otrzymując czas w dniach.
- Teraz wystarczy wyświetlić wszystkie otrzymane wyniki.
© medianauka.pl, 2021-10-24, A-4198
Data aktualizacji artykułu: 2024-06-29