mktime
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
mktime
Референца за `function.mktime.php` со подобрена типографија и навигација.
mktime
(PHP 4, PHP 5, PHP 7, PHP 8)
mktime — Добијте Unix временски печат за датум
= NULL
int
$hour,?int
$minute = null,?int
$second = null,?int
$month = null,?int
$day = null,?int
$year = null): int|false
Враќа Unix временски печат што одговара на дадените аргументи. Овој временски печат е долг цел број што го содржи бројот на секунди помеѓу Unix епохата (1 јануари 1970 00:00:00 GMT) и наведеното време.
Сите опционални аргументи изоставени или null ќе бидат поставени на тековната вредност според локалниот датум и време.
Ве молиме имајте предвид дека редоследот на аргументите е во чуден редослед:
month, day,
year, а не во поразумниот редослед на
year, month,
day.
Повикување mktime() без аргументи не е поддржано и ќе резултира со ArgumentCountError. time() може да се користи за добивање на тековниот временски печат.
Параметри
hour-
Бројот на часот во однос на почетокот на денот определен од
month,dayandyear. Негативните вредности се однесуваат на часот пред полноќ на денот во прашање. Вредностите поголеми од 23 се однесуваат на соодветниот час во следните денови. minute-
Бројот на минутата во однос на почетокот на
hour. Негативните вредности се однесуваат на минутата во претходниот час. Вредностите поголеми од 59 се однесуваат на соодветната минута во следните часови. second-
Бројот на секундите во однос на почетокот на
minute. Негативните вредности се однесуваат на секундата во претходната минута. Вредностите поголеми од 59 се однесуваат на соодветната секунда во следните минути. month-
Бројот на месецот во однос на крајот на претходната година. Вредностите од 1 до 12 се однесуваат на нормалните календарски месеци од годината во прашање. Вредностите помали од 1 (вклучувајќи негативни вредности) се однесуваат на месеците во претходната година во обратен редослед, така што 0 е декември, -1 е ноември, итн. Вредностите поголеми од 12 се однесуваат на соодветниот месец во следните години.
day-
Бројот на денот во однос на крајот на претходниот месец. Вредностите од 1 до 28, 29, 30 или 31 (во зависност од месецот) се однесуваат на нормалните денови во релевантниот месец. Вредностите помали од 1 (вклучувајќи негативни вредности) се однесуваат на деновите во претходниот месец, така што 0 е последниот ден од претходниот месец, -1 е денот пред тоа, итн. Вредностите поголеми од бројот на денови во релевантниот месец се однесуваат на соодветниот ден во следните месеци.
year-
Бројот на годината, може да биде вредност со две или четири цифри, при што вредностите помеѓу 0-69 се мапираат на 2000-2069 и 70-100 на 1970-2000. На системи каде time_t е 32-битен потпишан цел број, како што е најчесто денес, валидниот опсег за
yearе некаде помеѓу 1901 и 2038 година.
Вратени вредности
mktime() враќа Unix временски печат на дадените аргументи, или false ако временскиот печат не се вклопува во PHP цел број.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
hour веќе не е опционално. Ако ви треба Unix временски печат, користете time().
|
| 8.0.0 |
minute, second, month,
day and year се сега null.
|
Примери
Пример #1 mktime() основен пример
<?php
// Set the default timezone to use.
date_default_timezone_set('UTC');
// Prints: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000)) . "\n";
// Prints something like: 2006-04-05T01:02:03+00:00
echo date('c', mktime(1, 2, 3, 4, 5, 2006)) . "\n";Горниот пример ќе прикаже нешто слично на:
July 1, 2000 is on a Saturday 2006-04-05T01:02:03+00:00
Пример #2 mktime() example
mktime() е корисен за вршење аритметика и валидација на датуми, бидејќи автоматски ќе го пресмета точниот вредност за внес надвор од опсегот. На пример, секој од следниве редови го произведува стрингот "Јан-01-1998".
<?php
date_default_timezone_set('America/New_York');
echo date("c", mktime(0, 0, 0, 12, 32, 1997)) . "\n";
echo date("c", mktime(0, 0, 0, 13, 1, 1997)) . "\n";
echo date("c", mktime(0, 0, 0, 1, 1, 1998)) . "\n";
echo date("c", mktime(0, 0, 0, 1, 1, 98)) . "\n";Горниот пример ќе прикаже нешто слично на:
1998-01-01T00:00:00-05:00 1998-01-01T00:00:00-05:00 1998-01-01T00:00:00-05:00 1998-01-01T00:00:00-05:00
Пример #3 Користење mktime за пронаоѓање релативни датуми
<?php
date_default_timezone_set('Asia/Tokyo');
$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));
print date('c', $tomorrow) . "\n";
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
print date('c', $lastmonth) . "\n";
$nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1) . "\n";
print date('c', $nextyear) . "\n";Горниот пример ќе прикаже нешто слично на:
2025-09-30T00:00:00+09:00 2025-08-29T00:00:00+09:00 2026-09-29T00:00:00+09:00
Забелешка:
Ова може да биде посигурно отколку едноставно додавање или одземање на бројот на секунди во ден или месец на временска ознака поради летното сметање на времето.
Пример #4 Последниот ден од месецот
Последниот ден од кој било даден месец може да се изрази како "0" ден од следниот месец, а не -1 ден. И двата од следниве примери ќе го произведат стрингот "Последниот ден во фев 2000 е: 29".
<?php
$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo 'Last day in Feb 2000 is: ', date('d', $lastday) . "\n";
$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo 'Last day in Feb 2000 is: ', date('d', $lastday) . "\n";Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
Last day in Feb 2000 is: 29 Last day in Feb 2000 is: 29
Види Исто така
- На DateTimeImmutable class
- checkdate() - Валидирај грегоријански датум
- gmmktime() - Земете Unix временска ознака за датум во GMT
- date() - Форматирај Unix временски печат
- time() - Врати ја тековната Unix временска ознака