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)
PHP函数gmstrftime()将秒数转换成天时分秒的更多相关文章
- PHP 将秒数转换成时分秒
将秒数转换成时分秒,PHP提供了一个函数gmstrftime,不过该函数仅限于24小时内的秒数转换.对于超过24小时的秒数,我们应该怎么让其显示出来呢,例如 34:02:02 $seconds = 3 ...
- c# 将秒数转换成时,分,秒的方法
TimeSpan ts = , ,Convert.ToInt32( duration)); string str = ""; ) { str = ts.Hours.ToString ...
- php 把秒数转换为时长(h:i:s格式)
/** * 把秒数转换为时分秒的格式 * @param Int $times 时间,单位 秒 * @return String */ function secToTime($times){ $resu ...
- iOS 秒数转换成时间,时,分,秒
//转换成时分秒 - (NSString *)timeFormatted:(int)totalSeconds{ int seconds = totalSeconds % 60; int min ...
- 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)
转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...
- js秒数转换时分秒方法
今天写一个东西的时候 发现给出的是秒数.实在找不到直接的工具去转换. 就去网上找了个转换方法(有现成的就不写了,以后再简化下代码). function formatSeconds(value) { v ...
- date 命令之日期和秒数转换
时间转为秒数 date -d "2012-11-12 13:00:00" +"%s" 描述转为日期 date -d@1352692800 +"%Y-% ...
- java将秒数转换为时分秒格式
/** * 转换时间格式为xx小时xx分xx秒 * @param second xxxxx */ public String changeTimeFormat(String second) { Int ...
- PHP——秒数转换为时分秒
前言 通讯记录需要用到的一个方法,就是将秒转为时分秒 方法 PHP有内置的方法,直接用即可,不过这个只是24小时以内.对于通讯录来说是够用了~ 示例 $v = 30; gmdate('H:i:s', ...
随机推荐
- Java-排序算法-插入排序
一.插入排序的原理 将一个记录插入到一个已经排好序的有序表中,从而得到一个新的,记录数增1的新的有序表.从第一个元素开始,先将第一个元素看做一个排好序的子序列,然后从第二个元素开始起,对第二个元素进行 ...
- c#控件的动画显示效果
1. 缘由: 项目中任务完成有个提示,需要以动画效果展示,其效果当如下图: 此为老项目为Delphi所写,改用c#实现,此效果做些设计.本也不难,小技而已,但为易于扩展,写了个静态类实现. 2. A ...
- java 与 或 非 异或 & | ~ ^
1.与运算符 & 两个操作数中位,否则结果为0 2.或运算符 | 两个位,否则就为0 3.非运算符 ~ 如果位为,结果是,如果位为1,结果是0 4.异或运算符 ^ 两个操作数的位中,,不同则结 ...
- Jenkins+Jmeter+Ant自动化集成及邮件正文以html输出
一.工具的安装与环境变量配置 1.依次安装Jenkins+Jmeter+Ant,具体安装步骤,此文不再详述 2.配置Jmeter&ant环境变量 Jmeter变量: 验证是否配置成功:cmd窗 ...
- 3F - Lowest Common Multiple Plus
求n个数的最小公倍数. Input 输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数. Output 为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行.你可以假设最 ...
- 5I - 汉诺塔IV
还记得汉诺塔III吗?他的规则是这样的:不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到小盘的上面.xhd在想如果我们允许最大的盘子放到最上面会怎么样 ...
- Activity2.java
package com.hanqi.text3; import android.app.Activity; import android.os.Bundle; import android.os.Pe ...
- iOS.mach_absolute_time
1. Technical Q&A QA1398 Mach Absolute Time Units https://developer.apple.com/library/mac/qa/qa13 ...
- linux强制拷贝避免输入yes方法
Linux下默认cp命令是有别名(alias cp='cp -i')的,无法强制覆盖,即使你用 -f 参数也无法强制覆盖文件,下面提供两种Linux下cp 覆盖方法. 1) 取消cp的alias,这不 ...
- BZOJ 1969 航线规划 - LCT 维护边双联通分量
Solution 实际上就是查询 $u$ 到 $v$ 路径上 边双的个数 $ -1$. 并且题目仅有删边, 那么就离线倒序添边. 维护 边双 略有不同: 首先需要一个并查集, 记录 边双内的点. 在 ...