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:24

    有个bug,时间超过1年结果就不对了。。。

 
 

PHP函数gmstrftime()将秒数转换成天时分秒的更多相关文章

  1. PHP 将秒数转换成时分秒

    将秒数转换成时分秒,PHP提供了一个函数gmstrftime,不过该函数仅限于24小时内的秒数转换.对于超过24小时的秒数,我们应该怎么让其显示出来呢,例如 34:02:02 $seconds = 3 ...

  2. c# 将秒数转换成时,分,秒的方法

    TimeSpan ts = , ,Convert.ToInt32( duration)); string str = ""; ) { str = ts.Hours.ToString ...

  3. php 把秒数转换为时长(h:i:s格式)

    /** * 把秒数转换为时分秒的格式 * @param Int $times 时间,单位 秒 * @return String */ function secToTime($times){ $resu ...

  4. iOS 秒数转换成时间,时,分,秒

    //转换成时分秒 - (NSString *)timeFormatted:(int)totalSeconds{ int seconds = totalSeconds % 60;     int min ...

  5. 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)

    转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...

  6. js秒数转换时分秒方法

    今天写一个东西的时候 发现给出的是秒数.实在找不到直接的工具去转换. 就去网上找了个转换方法(有现成的就不写了,以后再简化下代码). function formatSeconds(value) { v ...

  7. date 命令之日期和秒数转换

    时间转为秒数 date -d "2012-11-12 13:00:00" +"%s" 描述转为日期 date -d@1352692800 +"%Y-% ...

  8. java将秒数转换为时分秒格式

    /** * 转换时间格式为xx小时xx分xx秒 * @param second xxxxx */ public String changeTimeFormat(String second) { Int ...

  9. PHP——秒数转换为时分秒

    前言 通讯记录需要用到的一个方法,就是将秒转为时分秒 方法 PHP有内置的方法,直接用即可,不过这个只是24小时以内.对于通讯录来说是够用了~ 示例 $v = 30; gmdate('H:i:s', ...

随机推荐

  1. [HDOJ]Coin Change(DP)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2069 题意 有面值1,5,10,25,50的硬币数枚,对于输入的面值n,输出可凑成面值n(且限制总硬笔 ...

  2. java 向上转型和向下转型

    学习向上转型和向下转型怎么用没多难,但是为什么那样用,我搞了很多次没弄明白.没弄明白的原因是平时学习时之看例子,而例子一般都比较简单,没有对象之间的调用,一般就是一个对象调用自己的方法. 首先看下怎么 ...

  3. 为什么使用Reazor

    原因:类似于前边写的模板页,自己写了.还需要用replace来替换成自己想要的变量.. 常见的模板引擎:Razor.Nvelocity.Vtemplate. Razor有VS自动提示,而且有助于学习a ...

  4. oracle数据库冷恢复

    场       景:客户的服务器是在虚拟机上,结果虚拟机的服务器的硬盘坏掉了.硬盘换掉后,系统成功恢复出来,但是登录虚拟机后,数据库无法启动. 解决方案:通过冷恢复将数据库还原.在自己的电脑上搭建一个 ...

  5. SqlServer中的数据库分类

    1.系统数据库(中央管理机构):用来管理用户创建用户数据的数据库. 系统数据库中包含如下数据库: (1)master:记录了sqlserver中所有系统级别的信息,包括所有的登录账户.系统配置,还有其 ...

  6. select into tb_temp2 from tb_temp1 创建临时表实现上一个、下一个功能,使用完毕就删除临时表

    好久没有写过Sql了,今天遇到一个问题,业务逻辑是: 一个商品可以属于多个分类,在显示商品详情的时候,要求可以点击“上一个”,“下一个” 查看和该商品在同一个分类下的其他商品,商品具有排序号. 这样我 ...

  7. Vue 初始化多个Vue 及之间的相互修改

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. 从matlab中导出下载到的轨迹数据

    我从该网址(http://www.ee.cuhk.edu.hk/~xgwang/MITtrajsingle.html)下载到了一些轨迹数据. 网页中简单说明了轨迹数据的由来:原始数据是在一个停车场上方 ...

  9. Python之路(第二十四篇) 面向对象初级:多态、封装

    一.多态 多态 多态:一类事物有多种形态,同一种事物的多种形态,动物分为鸡类,猪类.狗类 例子 import abc class H2o(metaclass=abc.ABCMeta): ​ def _ ...

  10. Python之路(第七篇)Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数

    一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") ret ...