您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

php有操作时间的方法吗

2024/4/20 11:01:28发布5次查看
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 值。
使用示例如下:
<?phpecho 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() 函数一样,该函数的参数也可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。
使用示例如下:
<?phpecho 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 是微秒部分。字符串的两部分都是以秒为单位返回的。
使用示例如下:
<?phpecho microtime(); //返回 msec sec 格式字符串表示时间echo "<br/>";echo microtime(true); //返回一个浮点型字符串表示时间?>
执行以上程序的打印结果如下:
0.40474900 14679108621467910862.4048
time()
time() 函数可返回当前的 unix 时间戳。语法如下:
int time ( void )
time() 函数的语法比较简单,使用示例如下:
<?phpecho time();?>
执行以上程序的打印结果为:
1467911104
getdate()
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
year 4 位数字表示的完整年份 比如:1999 或 2019
yday 一年中第几天的数字表示 0 到 365
weekday 星期几的完整文本表示 monday 到 sunday
month 月份的完整文本表示,,比如 january 或 april january 到 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() 函数
使用 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
注意:根据具体时间的变化,程序每次运行的结果略有不同。
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>';?>
运行结果如下:
当前的时间戳是:15852162562020-03-26 00:00:00 的时间戳是:1585152000省略函数的所有参数,获得的时间戳是:15852162562020-03-25 22:40:06 的时间戳是:1585147206
推荐学习:《php视频教程》
以上就是php有操作时间的方法吗的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录