Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查找从特定日期到现在经过了多少个月的天数(28,29,30,31)_Php_Timestamp - Fatal编程技术网

Php 查找从特定日期到现在经过了多少个月的天数(28,29,30,31)

Php 查找从特定日期到现在经过了多少个月的天数(28,29,30,31),php,timestamp,Php,Timestamp,我们如何使用php计算从特定日期到当前日期时间经过了多少个月,包括每月的天数(例如:-1月31日,2月28日/29日)。 我试过了 diff() 功能 不能解决我的问题。因为它计算了30天的月数。用人的方式去做;减去月份,如果日期在今天之前,则加一 $timestamp = strtotime('January 28'); list($old_year, $old_month, $old_day) = explode('-', date('Y-m-d', $timestamp)); list(

我们如何使用php计算从特定日期到当前日期时间经过了多少个月,包括每月的天数(例如:-1月31日,2月28日/29日)。 我试过了 diff() 功能
不能解决我的问题。因为它计算了30天的月数。

用人的方式去做;减去月份,如果日期在今天之前,则加一

$timestamp = strtotime('January 28');

list($old_year, $old_month, $old_day) = explode('-', date('Y-m-d', $timestamp));
list($now_year, $now_month, $now_day) = explode('-', date('Y-m-d'));

$months_ago = 12 * ($now_year - $old_year) + $now_month - $old_month;
if ($old_month < $now_month && $old_day < $now_day) {
    ++$months_ago;
}

echo $months_ago;
$timestamp=strottime('1月28日');
列表($old_year,$old_month,$old_day)=爆炸('-',日期('Y-m-d',$timestamp));
列表($now_year,$now_month,$now_day)=爆炸('-',日期('Y-m-d');
$months\u ago=12*($now\u year-$old\u year)+$now\u month-$old\u month;
如果($old_month<$now_month&$old_day<$now_day){
++$个月前;
}
echo$months_;

一种简单的方法:

$datetime1 = new DateTime('2012-11-15');
$datetime2 = new DateTime('2012-12-15');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%m months'); // output : +1 months
你应该好好玩玩DateInterval。它真的很强大。

谢谢你的回答。这是不准确的。我尝试使用$datetime1=newdatetime('2012-02-01')$datetime2=新的日期时间('2012-03-02');它返回0而不是1。我认为Jack解释的方法是正确的。我不能推荐这种解决方案,从2020-01-01到2020-03-01的差异返回的间隔为1个月29天。两个月后,情况并不像预期的那样。