首页 > 代码库 > PHP函数gmstrftime()将秒数转换成天时分秒
PHP函数gmstrftime()将秒数转换成天时分秒
http://yangjunwei.com/a/930.html
PHP函数gmstrftime()将秒数转换成天时分秒
一个应用场景需要用到倒计时的时分秒,比如新浪微博授权有效期剩余: 7天16小时47分钟42秒……
在PHP环境下,PHP函数 gmstrftime() 可实现将秒数转换成时分秒的转换,先看例子:
define("BJTIMESTAMP" , time()); //服务器当前时间$expires_in = ‘1439577160‘;//到期时间$expires = $expires_in - BJTIMESTAMP;function time2second($seconds){ $seconds = (int)$seconds; if( $seconds<86400 ){//如果不到一天 $format_time = gmstrftime(‘%H时%M分%S秒‘, $seconds); }else{ $time = explode(‘ ‘, gmstrftime(‘%j %H %M %S‘, $seconds));//Array ( [0] => 04 [1] => 14 [2] => 14 [3] => 35 ) $format_time = ($time[0]-1).‘天‘.$time[1].‘时‘.$time[2].‘分‘.$time[3].‘秒‘; } return $format_time;}echo "新浪微博授权有效期剩余: ". time2second($expires) . ‘<hr>‘;
注:gmstrftime() 函数返回的天数是一年中的第几天,因此时间超过一年,请使用下述代码。
更细致的划分,可用以下例子:
function time2second($seconds){ $seconds = (int)$seconds; if( $seconds>3600 ){ if( $seconds>24*3600 ){ $days = (int)($seconds/86400); $days_num = $days."天"; $seconds = $seconds%86400;//取余 } $hours = intval($seconds/3600); $minutes = $seconds%3600;//取余下秒数 $time = $days_num.$hours."小时".gmstrftime(‘%M分钟%S秒‘, $minutes); }else{ $time = gmstrftime(‘%H小时%M分钟%S秒‘, $seconds); } return $time;}echo "新浪微博授权有效期剩余: ". time2second($expires) . ‘<hr>‘;
最后说一下函数 gmstrftime() 的用法及参数:
语法:
gmstrftime(format,timestamp)
参数及描述:
format 必要参数;指定了返回结果的方法:%a - abbreviated weekday name 缩略的表示星期几的名称%A - full weekday name 表示星期几的全称%b - abbreviated month name 月份简称%B - full month name 月份全称%c - preferred date and time representation 首选的日期和时间表示法%C - century number (the year divided by 100, range 00 to 99) 表示世纪的数字(年份除以100,范围从00到99)%d - day of the month (01 to 31) 一个月包含的天数(从01到31)%D - same as %m/%d/%y 时间格式,与%m/%d/%y表示法相同%e - day of the month (1 to 31) 一个月包含的天数,数字前不包括0(从1到31)%g - like %G, but without the century 与%G雷同,但除去“世纪[century]”%G - 4-digit year corresponding to the ISO week number (see %V). 与ISO星期数相对应的4位数年份(见%V)%h - same as %b 与%b相同%H - hour, using a 24-hour clock (00 to 23) 小时,使用24小时时钟(00到23)%I - hour, using a 12-hour clock (01 to 12) 小时,使用12小时时钟(01到12)%j - day of the year (001 to 366) 一年的天数(001到366)%m - month (01 to 12) 月份(01到12)%M - minute 分钟%n - newline character 换行符%p - either am or pm according to the given time value 与给定的时间值相对应的am或pm%r - time in a.m. and p.m. notation 用am或pm表示给定的时间%R - time in 24 hour notation 用24小时制表示的时间%S - second 秒%t - tab character tab键/制表符%T - current time, equal to %H:%M:%S 当前时间,与“%H:%M:%S”组合相同%u - weekday as a number (1 to 7), Monday=1. Warning: In Sun Solaris Sunday=1 以数字形式表示星期几(1到7),Monday=1。提醒:在SUN Sloaris系统中,Sunday=1%U - week number of the current year, starting with the first Sunday as the first day of the first week 当今年份中包含的周的总数,以第一个星期日作为第一周的第一天%V - The ISO 8601 week number of the current year (01 to 53), where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week 在当今年份中所包含的ISO 8601格式下的周的总数(01到53),week 1表示第一周,以周一作为每周的第一天%W - week number of the current year, starting with the first Monday as the first day of the first week 当前年份中包含的周的总数,以第一个星期一作为第一周的第一天%w - day of the week as a decimal, Sunday=0 以数字的形式表示星期几,Sunday[星期日]=0%x - preferred date representation without the time 选取除去时间[time]的日期[date]%X - preferred time representation without the date 选取除去日期[date]的时间[time]%y - year without a century (range 00 to 99) 只显示包含年份的数字,不包含表示世纪的数字(00-99)%Y - year including the century 显示包含世纪数字的年份(即:四位数字表示的年份,如:1999,2001等)%Z or %z - time zone or name or abbreviation 前者为时区名称;后者为时区名称的简称%% - a literal % character 输出“%”字符串timestamp 可选参数。指定日期或时间的格式。如果没有指定时间戳[timestamp],那么将默认使用当前的GMT时间。
提示:gmstrftime()函数与strftime()函数用法大致相同,唯一的不同点是gmstrftime()函数返回的格林威治时间(GMT:Greenwich Mean Time)
4 条评论 »
- 开到荼蘼
2016/09/21 at 15:21:24Log in to Reply有个bug,时间超过1年结果就不对了。。。
- YangJunwei
2016/10/13 at 17:15:07Log in to Reply@开到荼蘼 gmstrftime()返回一年中的第几天,超过一年请使用第二个函数。
PHP函数gmstrftime()将秒数转换成天时分秒
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。