php有操作时间的方法。php中提供了丰富的日期时间处理方法:1、date(),格式化本地日期和时间;2、mktime(),返回日期的时间戳;3、idate(),格式化本地时间为整数;4、strtotime(),将时间字符串转为时间戳等等。
本教程操作环境: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()
gmmktime() 函数可取得 GMT 日期的 UNIX 时间戳。语法如下:
int gmmktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )
该函数的参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。
使用示例如下:
<?php echo gmmktime(); //没有设置参数, 则默认取得当前GMT时间 echo gmmktime(0,45,3,7,7,2016); //设置参数表示GMT时间2016年7月7日0点45分3秒 ?>
执行以上程序的打印结果为:
1467909956 1467852303
mktime()
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() 函数一样,该函数的参数也可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。
使用示例如下:
<?php echo mktime(); // 没有设置参数则默认取得当前GMT时间 echo mktime(0,45,3,7,7,2016); //设置参数表示GMT时间2016年7月7日0点45分3秒 ?>
执行以上程序的打印结果为:
1467910465 1467852303
microtime()
microtime() 可获得当前 UNIX 时间戳和微秒数。语法如下:
mixed microtime ([ bool $get_as_float ] )
如果设置 get_as_float 参数值为 true,microtime() 将返回一个浮点数;若不带参数,则返回一个“msec sec”格式的字符串,其中 sec 是自 UNIX 纪元起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。
使用示例如下:
<?php echo microtime(); //返回 msec sec 格式字符串表示时间 echo "<br/>"; echo microtime(true); //返回一个浮点型字符串表示时间 ?>
执行以上程序的打印结果如下:
0.40474900 1467910862 1467910862.4048
time()
time() 函数可返回当前的 UNIX 时间戳。语法如下:
int time ( void )
time() 函数的语法比较简单,使用示例如下:
<?php echo time(); ?>
执行以上程序的打印结果为:
1467911104
getdate()
getdate() 可取得日期时间信息。语法如下:
array getdate ([ int $timestamp = time() ] )
该函数返回一个根据 timestamp 得出的包含有日期信息的关联数组 array。如果没有给出时间戳,则认为是当前本地时间(此时和 time() 函数取值相同)。
其返回的关联数组中的键名单元如表所示。
键名 | 说明 | 返回值例子 |
---|---|---|
seconds | 秒的数字表示 | 0 到 59 |
minutes | 分钟的数字表示 | 0 到 59 |
hours | 小时的数字表示 | 0 到 23 |
mday | 月份中第几天的数字表示 | 1 到 31 |
wday | 星期中第几天的数字表示 | 0(周日)到6(周六) |
mon | 月份的数字表示 | 1 到 12 |
year | 4 位数字表示的完整年份 | 比如:1999 或 2019 |
yday | 一年中第几天的数字表示 | 0 到 365 |
weekday | 星期几的完整文本表示 | Monday 到 Sunday |
month | 月份的完整文本表示,,比如 January 或 April | January 到 December |
0 | 自从 UNIX 纪元开始至今的秒数,和 time() 的返回值以及用于 date() 的值类似 | 系统相关,典型值为 -2147483648 ~ 2147483647 |
getdate() 函数的使用示例如下:
<?php echo "<pre class="brush:php;toolbar:false">"; 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() 函数
使用 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”获取当前的时间戳:1585273874 2000-09-10 的时间戳是:968515200 在当前的时间戳上加一天:1585360274 在当前的时间戳上加一周:1585878674 在当前的时间戳上加一周两天四小时两分钟:1586065876 下一个周四的时间戳:1585756800 上一个周一的时间戳:1584892800
注意:根据具体时间的变化,程序每次运行的结果略有不同。
mktime() 函数
除了 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 ]]]]]]])
参数说明如下:
$hour:表示一天中经过的小时数。如果 $hour 为负值,则表示前一天的适当时间;如果 $hour 大于 23,则表示第二天的适当时间。
$minute:表示一个小时内经过的分钟数。如果 $minute 为负值,则表示前一小时适当的分钟数;如果 $minute 大于 59,则表示下一小时中的适当分钟数。
$second:表示一分钟内经过的秒数。如果 $second 为负值,则表示前一分钟内的适当秒数;如果 $second 大于59,则表示下一分钟内的适当秒数。
$month:表示一年中经过的月份数,取值范围在 1 到 12 之间。如果 $month 小于 1(包括负值),则表示上一年的适当月份;如果 $month 大于 12,则表示下一年的适当月份。
$day:表示一个月中经过的天数,取值范围在 1 到 31 之间(取决于具体月份的天数)。如果 $day 小于 1(包括负值),则表示上个月的适当天数,比如 0 表示上个月的最后一天,-1 表示上个月的倒数第二天等等;如果 $day 大于本月的最大天数,则表示下个月的适当日期。
$year:表示具体的年份,可以是两位或四位数字,0 ~ 69 对应 2000 ~ 2069 年,70 ~ 100 对应 1970 ~ 2000年。在如今系统中普遍把 time_t 作为一个 32 位有符号整数的情况下,$year 的合法范围是 1901 到 2038 之间,不过此限制自 PHP5.1.0 起已被克服了。
$is_dst:本参数可以设为 1,表示正处于夏时制时间(DST),0 表示不是夏时制,或者 -1(默认值)表示不知道是否是夏时制。不过本参数在 PHP5.1.0 中已被废弃,并在 PHP7.0.0 中移除。
提示: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>'; ?>
运行结果如下:
当前的时间戳是:1585216256 2020-03-26 00:00:00 的时间戳是:1585152000 省略函数的所有参数,获得的时间戳是:1585216256 2020-03-25 22:40:06 的时间戳是:1585147206
推荐学习:《PHP视频教程》
以上是php有操作时间的方法吗的详细内容。更多信息请关注PHP中文网其他相关文章!

本文比较了酸和基本数据库模型,详细介绍了它们的特征和适当的用例。酸优先确定数据完整性和一致性,适合财务和电子商务应用程序,而基础则侧重于可用性和

本文讨论了确保PHP文件上传的确保,以防止诸如代码注入之类的漏洞。它专注于文件类型验证,安全存储和错误处理以增强应用程序安全性。

本文讨论了在PHP中实施API速率限制的策略,包括诸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之类的库。它还涵盖监视,动态调整速率限制和手

本文讨论了使用password_hash和pyspasswify在PHP中使用密码的好处。主要论点是,这些功能通过自动盐,强大的哈希算法和SECH来增强密码保护

本文讨论了OWASP在PHP和缓解策略中的十大漏洞。关键问题包括注射,验证损坏和XSS,并提供用于监视和保护PHP应用程序的推荐工具。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),