我想计算从特定日期到另一个日期剩余的周数,以便获得每周的预算。这是我的代码:
$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
,当然这是错误的。但是我的代码有什么问题?
答案 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)
答案 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