mktime

(PHP 4、PHP 5、PHP 7、PHP 8)

mktime获取日期的 Unix 时间戳

描述

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

返回与给定参数相对应的 Unix 时间戳。此时间戳是一个长整型,包含 Unix 纪元(1970 年 1 月 1 日 00:00:00 GMT)到指定时间之间的秒数。

任何省略或为 null 的可选参数将根据本地日期和时间设置为当前值。

警告

请注意,参数的顺序很奇怪:monthdayyear,而不是更合理的顺序yearmonthday

调用不带参数的 mktime() 不受支持,会导致 ArgumentCountError。可以使用 time() 获取当前时间戳。

参数

hour

相对于由 monthdayyear 确定的当天开始的时间的小时数。负值表示当天午夜之前的小时数。大于 23 的值表示第二天(或多天)中的相应小时数。

minute

相对于 hour 开始的分钟数。负值表示上一小时中的分钟数。大于 59 的值表示下一小时(或多小时)中的相应分钟数。

second

相对于 minute 开始的秒数。负值表示上一分钟中的秒数。大于 59 的值表示下一分钟(或多分钟)中的相应秒数。

month

相对于前一年结束的月份数。值 1 到 12 表示相应年份中的正常日历月份。小于 1 的值(包括负值)表示前一年的月份,按反序排列,所以 0 表示 12 月,-1 表示 11 月,等等。大于 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 时间戳,如果时间戳不适合 PHP 整型,则返回 false

变更日志

版本 描述
8.0.0 hour 不再是可选的。如果需要 Unix 时间戳,请使用 time()
8.0.0 minutesecondmonthdayyear 现在可以为空。

示例

示例 #1 mktime() 基本示例

<?php
// 设置要使用的默认时区。
date_default_timezone_set('UTC');

// 打印:2000 年 7 月 1 日是星期六
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

// 打印类似:2006-04-05T01:02:03+00:00
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
?>

示例 #2 mktime() 示例

mktime() 对于进行日期运算和验证非常有用,因为它会自动计算超出范围的输入的正确值。例如,以下每一行都会生成字符串“Jan-01-1998”。

<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo
date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo
date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo
date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>

示例 #3 一个月的最后一天

任何给定月份的最后一天可以用下一个月的“0”天来表示,而不是 -1 天。以下两个示例都会生成字符串“The last day in Feb 2000 is: 29”。

<?php

$lastday
= mktime(0, 0, 0, 3, 0, 2000);
echo
'2000年2月的最后一天是: ', date('d', $lastday);

$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo
'2000年2月的最后一天是: ', date('d', $lastday);

?>

另请参阅

添加备注

用户贡献的注释

此页面没有用户贡献的注释。
To Top