php中两个时间相减怎么得到年数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中两个时间相减怎么得到年数相关的知识,希望对你有一定的参考价值。

Action中dump()查询结果如下:
array(2)
[0] => array(1)
["create_time"] => string(19) "2012-09-17 11:49:35"

[2] => array(1)
["create_time"] => string(19) "2012-09-17 11:49:35"

html
<volist name='' id='date'>
当前时间-$date.create_time=相差的年数
</volist>

使用格式化日期函数:date()
如:
有以下两个时间戳,把时间戳转换成年后相减再取绝对值:
$a= date('Y',1440700835);
$b= date('Y',1121720835);

echo abs( $a - $b) ;
参考技术A $str = date('Y',strtotime('2013-8-15'));
$str1 = date('Y',strtotime('2012-8-13'));
$year = $str-$str1;
echo $year;
当前的时间的话 就是date(‘Y’,time());
希望可以帮到你追问

如果$str里的时间小于2014-8-13应该就是没有2年
可他算出来的是2年这不准确啊,没有把月份也拿去计算

追答

$birth='2011-12-18';
list($by,$bm,$bd)=explode('-',$birth);
$cm=date('n');
$cd=date('j');
$age=date('Y')-$by-1;
if ($cm>$bm || $cm=$bm && $cd>=$bd) $age++;
echo "大小:$age";

参考技术B $time1= strtotime('2012-12-12 00:00:00');
$time2=time();
$timd=$time2-$time1; //得到秒
换算成年就好了本回答被提问者采纳

java 两个日期相减的怎么做?

  对已日期相减,最高效的做法就是将二者都转换成毫秒,相减之后再根据你的需求进行单位转换,比如你想显示相差的秒数,就除以1000,以此类推,翠花,上代码:

        /* 随便选两个时间 */
        String d1 = "2015-04-17";
        String d2 = "2015-06-17";
        
        /* 先转成毫秒并求差 */
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        long m = sdf.parse(d2).getTime() - sdf.parse(d1).getTime();
        
        /* 根据你的需求进行单位转换 */
        System.out.println("相差毫秒数:"+ m );
        System.out.println("相差天数:"+ ( m / (1000 * 60 * 60 * 24) ) );

要注意的地方:

时间格式可能有很多种,比如20150611或者2015年6月11日等等。所以你需要以对应的方式来初始化SimpleDateFormat对象。

例如20150611,就要写成:

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

SimpleDateFormat类是非线程安全的,所以在高并发下需要加同步锁,否则会出现灵异事件。

参考技术A 给你提供一个思路。

两个日期转化为毫秒相减,相减后的毫秒转化为天数(因为日期-日期=天数)

比如date是个Date型 long time1=date.getTime()(将日期转成毫秒数),另一个也转成毫秒数相减,后面就是把相减得到的毫秒数换成天数就可以了。
参考技术B import java.util.*;
public class DateSubtract
public static void main(String[] args)
Calendar nowDate=Calendar.getInstance(),oldDate=Calendar.getInstance();
nowDate.setTime(new Date());//设置为当前系统时间
oldDate.set(1990, 5, 19);//设置为1990年(6)月29日
long timeNow=nowDate.getTimeInMillis();
long timeOld=oldDate.getTimeInMillis();
long 相隔天数=(timeNow-timeOld)/(1000*60*60*24);//化为天
System.out.println("相隔"+相隔天数+"天");

参考技术C 你可以先把日期类型转换成毫秒(Long类型),让后在运算!

以上是关于php中两个时间相减怎么得到年数的主要内容,如果未能解决你的问题,请参考以下文章

java日期相减得到天数

在SQLserver中如何获得两个日期相减的天数

用java怎么计算两个日期之间年数,季度数,月数

怎么用C++做日期相减(要求精确到分钟)

js日期相减求天数 精确到秒

SQL 日期相减(间隔)datediff函数