php获取今日开始结束时间戳

PHP / 392人浏览 / 0人评论

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-Date/Time函数mktime()

支持版本

(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.0is_dst参数已经被移除。
5.3.0mktime()现在抛出E_DEPRECATED通知,如果使用is_dst参数。
5.1.0is_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'));

转载注明:

0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我