计算每周预算以及剩余的周数

时间:2015-07-15 19:29:11

标签: php date datetime-format

我想计算从特定日期到另一个日期剩余的周数,以便获得每周的预算。这是我的代码:

$date_from = new DateTime('2015-07-28');
$date_to = new DateTime();
$interval = $date_from->diff($date_to);
$daysleft = ($interval->format('%a') + 1);
$weeksleft = number_format($daysleft / 7);

echo ('3164.49' / $weeksleft);

该代码在过去2周内打印3 167,76,当然这是错误的。但是我的代码有什么问题?

4 个答案:

答案 0 :(得分:1)

您可以采用不同的方式进行操作,如下所示。

$a = strtotime('2015/07/28');
$b = time();
$diff = abs($a - $b);
echo round($diff/(60*60*24*7)); // to get round figure

答案 1 :(得分:1)

$date_from = new DateTime('2015-07-28');
$date_to = new DateTime();
$interval = $date_from->diff($date_to);
$daysleft = ($interval->format('%a') + 1);
$weeksleft = number_format($daysleft / 7);

echo (floatval('3164.49') / $weeksleft);

结果 1582.245

答案 2 :(得分:0)

我得到1582.245 ..检查/设置您的时区设置。

date_default_timezone_set ($timezone_identifier)

http://php.net/manual/en/timezones.php

答案 3 :(得分:0)

试试这个功能,

function datediffInWeeks($date1, $date2)
{
if($date1 > $date2) return datediffInWeeks($date2, $date1);
$first = DateTime::createFromFormat('m/d/Y', $date1);
$second = DateTime::createFromFormat('m/d/Y', $date2);
return floor($first->diff($second)->days/7);
}

var_dump(datediffInWeeks('1/2/2013', '6/4/2013'));// 21