文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php有没有操作时间的方法

2023-06-30 07:08

关注

这篇“php有没有操作时间的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php有没有操作时间的方法”文章吧。

php有操作时间的方法。php中提供了丰富的日期时间处理方法:1、date(),格式化本地日期和时间;2、mktime(),返回日期的时间戳;3、idate(),格式化本地时间为整数;4、strtotime(),将时间字符串转为时间戳等等。

php有没有操作时间的方法

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

php有操作时间的方法。

在 Web 开发中对日期和时间的使用与处理是必不可少的,例如表单提交的时间、用户登录的时间、数据库中数据的更新和删除的时间等。想要记录这些操作执行的时刻,就需要通过日期和时间来完成。

PHP 中为我们提供了丰富的日期时间处理函数:

函数描述
checkdate()验证格利高里日期。
date_add()添加日、月、年、时、分和秒到一个日期。
date_create_from_format()返回一个根据指定格式进行格式化的新的 DateTime 对象。
date_create()返回一个新的 DateTime 对象。
date_date_set()设置一个新的日期。
date_default_timezone_get()返回默认时区,被所有的 Date/Time 函数使用。
date_default_timezone_set()设置默认时区,被所有的 Date/Time 函数使用。
date_diff()返回两个日期间的差值。
date_format()返回根据指定格式进行格式化的日期。
date_get_last_errors()返回日期字符串中的警告/错误。
date_interval_create_from_date_string()从字符串的相关部分建立一个 DateInterval。
date_interval_format()格式化时间间隔。
date_isodate_set()设置 ISO 日期。
date_modify()修改时间戳。
date_offset_get()返回时区偏移。
date_parse_from_format()根据指定的格式返回一个带有指定日期的详细信息的关联数组。
date_parse()返回一个带有指定日期的详细信息的关联数组。
date_sub()从指定日期减去日、月、年、时、分和秒。
date_sun_info()返回一个包含有关指定日期与地点的日出/日落和黄昏开始/黄昏结束的信息的数组。
date_sunrise()返回指定日期与地点的日出时间。
date_sunset()返回指定日期与地点的日落时间。
date_time_set()设置时间。
date_timestamp_get()返回 Unix 时间戳。
date_timestamp_set()设置基于 Unix 时间戳的日期和时间。
date_timezone_get()返回给定 DateTime 对象的时区。
date_timezone_set()设置 DateTime 对象的时区。
date()格式化本地日期和时间。
getdate()返回某个时间戳或者当前本地的日期/时间的日期/时间信息。
gettimeofday()返回当前时间。
gmdate()格式化 GMT/UTC 日期和时间。
gmmktime()返回 GMT 日期的 UNIX 时间戳。
gmstrftime()根据区域设置格式化 GMT/UTC 日期和时间。
idate()格式化本地时间/日期为整数。
localtime()返回本地时间。
microtime()返回当前 Unix 时间戳的微秒数。
mktime()返回一个日期的 Unix 时间戳。
strftime()根据区域设置格式化本地时间/日期。
strptime()解析由 strftime() 生成的时间/日期。
strtotime()将任何英文文本的日期或时间描述解析为 Unix 时间戳。
time()返回当前时间的 Unix 时间戳。
timezone_abbreviations_list()返回包含夏令时、偏移量和时区名称的关联数组。
timezone_identifiers_list()返回带有所有时区标识符的数值数组。
timezone_location_get()返回指定时区的位置信息。
timezone_name_from_ abbr()根据时区缩略语返回时区名称。
timezone_name_get()返回时区的名称。
timezone_offset_get()返回相对于 GMT 的时区偏移。
timezone_open()创建一个新的 DateTimeZone 对象。
timezone_transitions_get()返回时区的所有转换。
timezone_version_get()返回时区数据库的版本。

下面简单介绍一些时间日期处理方法:

1、PHP获取当前时间(5种方式)

在日期和时间函数中,UNIX 时间戳的获取非常重要,时间戳是一个字符序列,是指格林尼治时间 1970年 01 月 01 日 00 时 00 分 00 秒(北京时间 1970 年 01 月 01 日 08 时 00 分 00 秒)起至现在的总毫秒数。下面介绍几个获取当前时间的函数。

gmmktime() 函数可取得 GMT 日期的 UNIX 时间戳。语法如下:

int gmmktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )

该函数的参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。

使用示例如下:

<?phpecho gmmktime();  //没有设置参数, 则默认取得当前GMT时间echo gmmktime(0,45,3,7,7,2016);  //设置参数表示GMT时间2016年7月7日0点45分3秒?>

执行以上程序的打印结果为:

1467909956   1467852303

mktime() 也可取得一个日期的 UNIX 时间戳。语法如下:

int 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 纪元到给定时间的秒数。

和 gmmktime() 函数一样,该函数的参数也可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。

使用示例如下:

<?phpecho mktime();  // 没有设置参数则默认取得当前GMT时间echo mktime(0,45,3,7,7,2016);  //设置参数表示GMT时间2016年7月7日0点45分3秒?>

执行以上程序的打印结果为:

1467910465 1467852303

microtime() 可获得当前 UNIX 时间戳和微秒数。语法如下:

mixed microtime ([ bool $get_as_float ] )

如果设置 get_as_float 参数值为 true,microtime() 将返回一个浮点数;若不带参数,则返回一个“msec sec”格式的字符串,其中 sec 是自 UNIX 纪元起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。

使用示例如下:

<?phpecho microtime();  //返回 msec sec 格式字符串表示时间echo "<br/>";echo microtime(true);  //返回一个浮点型字符串表示时间?>

执行以上程序的打印结果如下:

0.40474900 14679108621467910862.4048

time() 函数可返回当前的 UNIX 时间戳。语法如下:

int time ( void )

time() 函数的语法比较简单,使用示例如下:

<?phpecho time();?>

执行以上程序的打印结果为:

1467911104

getdate() 可取得日期时间信息。语法如下:

array getdate ([ int $timestamp = time() ] )

该函数返回一个根据 timestamp 得出的包含有日期信息的关联数组 array。如果没有给出时间戳,则认为是当前本地时间(此时和 time() 函数取值相同)。

其返回的关联数组中的键名单元如表所示。

getdate() 函数返回关联数组键名
键名说明返回值例子
seconds秒的数字表示0 到 59
minutes分钟的数字表示0 到 59
hours小时的数字表示0 到 23
mday月份中第几天的数字表示1 到 31
wday星期中第几天的数字表示0(周日)到6(周六)
mon月份的数字表示1 到 12
year4 位数字表示的完整年份比如:1999 或 2019
yday一年中第几天的数字表示0 到 365
weekday星期几的完整文本表示Monday 到 Sunday
month月份的完整文本表示,,比如 January 或 AprilJanuary 到 December
0自从 UNIX 纪元开始至今的秒数,和 time() 的返回值以及用于 date() 的值类似系统相关,典型值为 -2147483648 ~ 2147483647

getdate() 函数的使用示例如下:

<?phpecho "<pre>";var_dump(getdate());?>

执行以上程序的打印结果如下:

array(11) {    ["seconds"]=>int(57)    ["minutes"]=>int(18)    ["hours"]=>int(17)    ["mday"]=>int(7)    ["wday"]=>int(4)    ["mon"]=>int(7)    ["year"]=>int(2016)    ["yday"]=>int(188)    ["weekday"]=>string(8) "Thursday"    ["month"]=>string(4) "July"    [0]=>int(1467911937)}

2、strtotime()与mktime():日期转时间戳

使用 strtotime() 函数可以将任何字符串类型的日期/时间转换为 UNIX 时间戳,其语法格式如下:

strtotime($time [,$now = time()])

其中 $time 为表示时间/日期的字符串,例如“2020-01-01”;$now 为可选参数,用来计算返回值的时间戳。函数执行成功会返回指定的字符串,执行失败返回 FALSE。

另外需要注意的是,如果使用两位数字表示年份的话,其中 0 ~ 69 表示 2000 ~ 2069,70 ~ 100 则表示 1970 ~ 2000。

【示例】使用 strtotime() 函数获取指定时间的时间戳。

<?php    echo '当前的时间戳是:'.time().'<br>';    echo '使用“now”获取当前的时间戳:'.strtotime('now').'<br>';    echo '2000-09-10 的时间戳是:'.strtotime("10 September 2000").'<br>';    echo '在当前的时间戳上加一天:'.strtotime("+1 day").'<br>';    echo '在当前的时间戳上加一周:'.strtotime("+1 week").'<br>';    echo '在当前的时间戳上加一周两天四小时两分钟:'.strtotime("+1 week 2 days 4 hours 2 seconds").'<br>';    echo '下一个周四的时间戳:'.strtotime("next Thursday").'<br>';    echo '上一个周一的时间戳:'.strtotime("last Monday").'<br>';?>

运行结果如下:

当前的时间戳是:1585273874使用“now”获取当前的时间戳:15852738742000-09-10 的时间戳是:968515200在当前的时间戳上加一天:1585360274在当前的时间戳上加一周:1585878674在当前的时间戳上加一周两天四小时两分钟:1586065876下一个周四的时间戳:1585756800上一个周一的时间戳:1584892800

注意:根据具体时间的变化,程序每次运行的结果略有不同。

除了 strtotime() 函数外,我们还可以使用 PHP 中的 mktime() 函数来获取指定日期的 UNIX 时间戳,该函数的语法格式如下:

mktime ([$hour = date("H") [, $minute = date("i") [, $second = date("s") [, $month = date("n") [, $day = date("j") [, $year = date("Y") [, $is_dst = -1 ]]]]]]])

参数说明如下:

提示:mktime() 函数中的参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。如果省略函数的所有参数,那么 mktime() 函数会和 time() 函数一样,返回当前的时间戳。

【示例】使用 mktime() 函数获取指定时间的时间戳。

<?php    $time1 = time();    echo '当前的时间戳是:'.$time1.'<br>';    $time2 = mktime(0, 0, 0, 3, 26, 20);    echo '2020-03-26 00:00:00 的时间戳是:'.$time2.'<br>';    $time3 = mktime();    echo '省略函数的所有参数,获得的时间戳是:'.$time3.'<br>';    $time4 = mktime(-1, -20, 6, 3, 26, 2020);    echo '2020-03-25 22:40:06 的时间戳是:'.$time4.'<br>';?>

运行结果如下:

当前的时间戳是:15852162562020-03-26 00:00:00 的时间戳是:1585152000省略函数的所有参数,获得的时间戳是:15852162562020-03-25 22:40:06 的时间戳是:1585147206

以上就是关于“php有没有操作时间的方法”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯