mktime — 取得一个日期的 Unix 时间戳,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 ): int,根据给出的参数返回 Unix 时间戳。
支持版本
(PHP 4, PHP 5, PHP 7, PHP 8)
定义和用法
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
): int
mktime — 取得一个日期的 Unix 时间戳
根据给出的参数返回 Unix 时间戳。时间戳是一个长整数,包含了从 Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数。参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。
注意:从PHP5.1开始,当不带参数调用时,mktime()抛出一个严格的通知,mktime(): You should be using the time() function instead:改用time()函数。
参数解释
参数 | 描述 |
---|---|
hour | 小时数 |
minute | 分钟数。 |
second | 秒数(一分钟之内)。 |
month | 月份数。 |
day | 天数。 |
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)。
错误/异常
在每 次调用日期/时间函数时,如果时区无效则会引发 E_NOTICE 错误,如果使用系统设定值或 TZ 环境变量,则会引发 E_STRICT 或 E_WARNING 消息。参见 date_default_timezone_set()。
更新日志
版本 | 说明 |
---|---|
7.0.0 | is_dst参数已经被移除。 |
5.3.0 | mktime()现在抛出E_DEPRECATED通知,如果使用is_dst参数。 |
5.1.0 | is_dst 参数被废弃。出错时函数返回 false 而不再是 -1。修正了本函数可以接受年月日参数全为零。 |
5.1.0 | 当不带参数调用时,mktime()会抛出Eu STRICT通知。改用time()函数。 |
5.1.0 | 现在发布 E_STRICT 和 E_NOTICE 时区错误。 |
演示案例一
<?php
// Set the default timezone to use. Available as of PHP 5.1
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));
// Prints something like: 2006-04-05T01:02:03+00:00
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
?>
返回结果
July 1, 2000 is on a Saturday
2006-04-05T01:02:03+00:00
演示案例二
//获取今日开始时间戳和结束时间戳
$today_start_time = mktime(24, 0, 0, date('m'), date('d'), date('Y'));
$today_end_time = mktime(0, 0, 0, date('m'), date('d')+1, date('Y'))-1;
//获取昨日起始时间戳和结束时间戳
$yestoday_start_time = mktime(0, 0, 0, date('m'), date('d')-1, date('Y'));
$yestoday_end_time = mktime(0, 0, 0, date('m'), date('d'), date('Y'))-1;
//获取上周起始时间戳和结束时间戳
$last_week_start_time = mktime(0, 0, 0, date('m'), date('d')-date('w')+1-7, date('Y'));
$last_week_end_time = mktime(23, 59, 59, date('m'), date('d')-date('w')+7-7, date('Y'));
//获取本月起始时间戳和结束时间戳
$this_month_start_time = mktime(0, 0, 0, date('m'), 1, date('Y'));
$this_month_end_time = mktime(23, 59, 59, date('m'), date('t'), date('Y'));
转载注明:
感谢博主,喝杯咖啡~
感谢博主,喝杯咖啡~
还没有人发表评论