
<php
$time1 = mktime(10,20,30,2,5,2000); //2000-2-5 10:20:30
$time2 = mktime(18,30,20,5,2,2000); //2000-5-2 18:30:20
$diff = (int)(($time2-$time1)/(243600));
echo "$time2 和 $time1 的时间差为:" $diff "天<br>";
>
使用PHP的strtotime函数可以获取指定时间或日期的时间戳,然后再使用date函数格式化时间戳就可以了。
举例如下:
date_default_timezone_set('PRC'); //设置时区//打印出3天前的时间
echo(date('Y-m-d H:i:s', strtotime("-3 day")));
//打印出2个星期前的时间
echo(date('Y-m-d H:i:s', strtotime("-2 week")));
//打印出5个小时后的时间
echo(date('Y-m-d H:i:s', strtotime("+5 hours")));
//打印出1个星期后的时间
echo(date('Y-m-d H:i:s', strtotime("+1 week")));
输出结果:
两时间戳相减得到相差时间的秒数,然后转化成X天X小时X分X秒
<php
//自定义函数:time2string($second) 输入秒数换算成多少天/多少小时/多少分/多少秒的字符串
function time2string($second){
$day = floor($second/(360024));
$second = $second%(360024);//除去整天之后剩余的时间
$hour = floor($second/3600);
$second = $second%3600;//除去整小时之后剩余的时间
$minute = floor($second/60);
$second = $second%60;//除去整分钟之后剩余的时间
//返回字符串
return $day'天'$hour'小时'$minute'分'$second'秒';
}
//获取从现在到2011年11月11日11点11分11秒还有多久
$time1 = strtotime('2011-11-11 11:11:11');
$time2 = strtotime(now);
//相减得到相差的 秒 数
$time3 = $time1 - $time2;
//输出
echo '从现在到2011年11月11日11点11分11秒还有:'time2string($time3);
在判断某一天是哪一年的第几周的时候,根据采用的国际标准(忘了叫什么名字了),年首或者年末的那几天有可能不属于今年的第一周或者最后一周。
代码如下:
<php
echo date("oW",strtotime("20141229"))"\n";
echo date("oW",strtotime('20160101'))"\n";
>
扩展资料
php计算时间段的天数:
$firstday = date("Y-m-d H:i:s",time());//当前日期
$timestamp=strtotime($firstday);//当前日期时间戳
$firstday=date('Y-m-01',strtotime(date('Y',$timestamp)'-'(date('m',$timestamp)-1)'-01'));//上个月开始的日期
$lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));//上个月结束的日期
$stimestamp = strtotime($firstday);
$etimestamp = strtotime($lastday);// 计算日期段内有多少天
$days = ($etimestamp-$stimestamp)/86400+1;// 保存每天日期
$date = array();
for($i=0; $i<$days; $i++){
$date[] = date('Y-m-d', $stimestamp+(86400$i));
}
PHP获取当前时间可以使用time函数,函数格式为 int time ( void ),返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
把time格式的时间以年月日时分秒的格式输出,可以使用date函数,格式是string date ( string $format [, int $timestamp ] ),例子代码:
<php$t=time();
echo "$t\n";
echo date('Y-m-d H:i:s', $t)
>
运行结果为:
E:\TEMP\文件\exp>aphp1451271607
2015-12-28 11:00:07
date函数的格式化字符许多,主要的有下面这些:
年:
L 是否为闰年 如果是闰年为 1,否则为 0
o ISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 510 新加) Examples: 1999 or 2003
Y 4 位数字完整表示的年份 例如:1999 或 2003
y 2 位数字表示的年份 例如:99 或 03
月:
F 月份,完整的文本格式,例如 January 或者 March January 到 December
m 数字表示的月份,有前导零 01 到 12
M 三个字母缩写表示的月份 Jan 到 Dec
n 数字表示的月份,没有前导零 1 到 12
t 给定月份所应有的天数 28 到 31
日:
d 月份中的第几天,有前导零的 2 位数字 01 到 31
D 星期中的第几天,文本表示,3 个字母 Mon 到 Sun
j 月份中的第几天,没有前导零 1 到 31
l(“L”的小写字母) 星期几,完整的文本格式 Sunday 到 Saturday
N ISO-8601 格式数字表示的星期中的第几天(PHP 510 新加) 1(表示星期一)到 7(表示星期天)
S 每月天数后面的英文后缀,2 个字符 st,nd,rd或者 th。可以和 j 一起用
w 星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六)
z 年份中的第几天 0 到 366
星期:
W ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 410 新加的) 例如:42(当年的第 42 周)
时间:
a 小写的上午和下午值 am 或 pm
A 大写的上午和下午值 AM 或 PM
B Swatch Internet 标准时 000 到 999
g 小时,12 小时格式,没有前导零 1 到 12
G 小时,24 小时格式,没有前导零 0 到 23
h 小时,12 小时格式,有前导零 01 到 12
H 小时,24 小时格式,有前导零 00 到 23
i 有前导零的分钟数 00 到 59>
s 秒数,有前导零 00 到 59>
以上就是关于怎样用php实现两个时间相减,得到相差的天数全部的内容,包括:怎样用php实现两个时间相减,得到相差的天数、php得到当前时间的前多少天时间、PHP时间相减获得剩余天数小时数分钟数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)