从数字中查找数周和数天的月数

chc*_*ist 3 php

假设我有编号234 编辑(以天为单位).我怎样才能找到几个月,几周和几天?是否有功能或我必须自己计算?我的主要问题是月份,因为他们没有固定的天数(30,31,28).

实际上我正在编写一个应用程序,其中每个费用的输入时间以天为单位.但在视图中我不想显示"每234天收费",而是"每x个月收费n天n天"

提前致谢

mit*_*esh 6

编辑:也增加了周数

<?PHP
$date1 = new DateTime();
$date2 = new DateTime();
$date2->modify('+241 day');

$interval = $date1->diff($date2);

$years = $interval->format('%y');
$months = $interval->format('%m');
$days = $interval->format('%d');

$weeks = (int) ($days / 7);
$days = $days % 7;

echo "$years years $months months $weeks weeks $days days";
?>
Run Code Online (Sandbox Code Playgroud)

编辑:在下面没有DateTime

参考:如何使用PHP计算两个日期之间的差异?

$date1 = time();
$date2 = strtotime("+237 day");

$diff = abs($date2 - $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));

$weeks = (int) ($days / 7);
$days = $days % 7;

printf("%d years, %d months,%d weeks, %d days\n", $years, $months, $weeks, $days);
Run Code Online (Sandbox Code Playgroud)