将年份或月份转换为天数,PHP

4

我使用了这种方法来获取两个日期之间的差异。

$diff = abs(strtotime($date2) - strtotime($date1));
$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));

现在,假设我想把年份和月份转换成天数。我该怎么做?

1
你应该看一下这个:http://de2.php.net/DateTime 它更容易。 - looper
优雅的方法获取两个日期之间的月份数。 - GBD
2个回答

5
使用 DateTime 这个类十分简单:
$date1 = new DateTime($date1);
$date2 = new DateTime($date2);

$diff = $date1->diff($date2, true);

echo $diff->format('%a') . ' days';

它对我有效,但我使用了 % echo $diff->format('%a') . ' 天'; - Eugene
@Jack,也许这与PHP的版本有关?我正在使用5.5.9,只有%才能为我工作。所以如果它不起作用,这只是其他人的小提示。 - Eugene
1
@Eugene 实际上,你是对的;它需要百分号才能正常工作,是我的错误。现在已经修复了 :) 谢谢! - Ja͢ck
@杰克,太好了!谢谢你。 - Eugene

0
$currentDate = date("d-m-Y");
$date1 = date_create("".$joining_date."");
$date2 = date_create("".$currentDate."");
$diff12 = date_diff($date2, $date1);
$hub_days = $diff12->days;
$months = $diff12->m;
$years = $diff12->y;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接