PHP mktime 日期时间函数

  • 定义和用法

    mktime - 取得一个日期的 Unix 时间戳
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
  • 语法

    mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )   
    
    根据给出的参数返回 Unix 时间戳。时间戳是一个长整数,包含了从 Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数。 参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。
  • 参数

    参数 必需的 描述
    hour 小时数。相对于一天开始的小时数,由月,日和年确定。 负值是指相关日期午夜前一小时。 大于23的值表示第二天的适当小时。
    minute 分钟数。相对于小时开始的分钟数。 负值表示前一小时的分钟。 大于59的值将在接下来的小时内引用适当的分钟。
    second 秒数(一分钟之内)。相对于分钟开始的秒数。 负值引用前一分钟的秒数。 大于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 之间,不过此限制自 PHP 5.1.0 起已被克服了。
    is_dst 本参数可以设为 1,表示正处于夏时制时间(DST),0 表示不是夏时制,或者 -1(默认值)表示不知道是否是夏时制。如果未知,PHP 会尝试自己搞明白。这可能产生不可预知(但并非不正确)的结果。如果 PHP 运行的系统中启用了 DST 或者 is_dst 设为 1,某些时间是无效的。例如 DST 自 2:00 生效,则所有处于 2:00 到 3:00 之间的时间都无效,mktime() 会返回一个未定义(通常为负)的值。某些系统(例如 Solaris 8)的 DST 在午夜生效,则 DST 生效当天的 0:30 会被计算为前一天的 23:30。
    自 PHP 5.1.0 起,本参数已被废弃。应该使用新的时区处理特性来替代。
    PHP 7.0.0 起,此参数已经被移除。
  • 返回值

    mktime() 根据给出的参数返回 Unix 时间戳。如果参数非法,本函数返回 FALSE(在 PHP 5.1 之前返回 -1)。
  • 示例

    <?php
    date_default_timezone_set('UTC');
     
    echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2019));
    echo "<br/>";
    // Prints something like: 2006-04-05T01:02:03+00:00
    echo date('c', mktime(1, 2, 3, 4, 5, 2019));
    
    尝试一下
  • 相关函数

    checkdate() - 验证一个格里高里日期
    gmmktime() - 取得 GMT 日期的 UNIX 时间戳
    date() - 格式化一个本地时间/日期
    time() - 返回当前的 Unix 时间戳