在php中将天数转换为数月和天

时间:2015-10-01 07:04:18

标签: php

我有一个号码144我想转换为几个月和几天,即我希望显示3个月24天。

这样做的公式是什么?我尝试了很多方法但没有用。

$sub_struct_month = ($result[0] / 30) ;
$sub_struct_month = floor($sub_struct_month); 
$sub_struct_days = ($result[0] / 30); // the rest of days
$sub_struct = $sub_struct_month."m ".$sub_struct_days."d";

5 个答案:

答案 0 :(得分:5)

使用Modulus运算符获取正确的天数:

RewriteEngine On

<?php $result = array(144); $sub_struct_month = ($result[0] / 30) ; $sub_struct_month = floor($sub_struct_month); $sub_struct_days = ($result[0] % 30); // the rest of days $sub_struct = $sub_struct_month."m ".$sub_struct_days."d"; echo $sub_struct; ?> 中的结果。

更多详情:http://php.net/manual/en/language.operators.arithmetic.php

答案 1 :(得分:4)

你知道有傻瓜(2月有时候有29天)吗?例如7月和8月有31天。你不能说一般“将144天转换成几个月”,因为它每个月都不同。

<?php
$start_date = new DateTime(date("Y/m/d"));
$end_date = new DateTime(date("Y/m/d",strtotime("+144 days")));
$dd = date_diff($start_date,$end_date);
echo "$dd->m months $dd->d days";
?>

对于start_date,您可以使用特定日期!也适用于end_date 这是正确的方法,因此每一个年级都会被观察到!

答案 2 :(得分:0)

请尝试以下代码

  $months = floor(144 / 30);
  $days = 144 - ($months*30);
  echo  $months ."Months " . $days ."days";

答案 3 :(得分:0)

PHP有完美的类来处理日期:DateTime

此课程允许您在两个日期之间获得差异DateTime::diff并根据需要使用DateTime::format格式化结果

是的,这不完全是你想要的。但它允许您获得精确的日期和月份值。

所以,我建议你先阅读文档。我希望你能找到一种方法来实现它。

答案 4 :(得分:0)

我的方法

$days = 144;

$month = $days/30;

list($month,$days) = explode(".",$month);
$days = "0.".$days;
echo $month."</br>";
echo $days*30;