怎样用php实现两个时间相减,得到相差的天数

怎样用php实现两个时间相减,得到相差的天数,第1张

<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>aphp

1451271607

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时间相减获得剩余天数小时数分钟数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9709479.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存