我有5个不同的时间表,为期5周:
根据我的计算数组[0],第一周的星期一[0]设定为2011年4月25日。
我有这段代码来计算输入日期和开始日期之间的差异,即2011年4月25日。
$tdays = floor((strtotime($date2) - strtotime($date1))/86400);
我现在可以从2011年4月开始计算我的工作时间表,直到2012年2月。 但是,如果我输入2012年2月以后的日期,由于闰年,输出是错误的。这有什么技巧吗?
答案 0 :(得分:1)
如果你能够使用php 5.3,你应该使用date_diff()
或尝试这样的事情:
<?php
function dateDifference($startDate, $endDate)
{
$startDate = strtotime($startDate);
$endDate = strtotime($endDate);
if ($startDate === false || $startDate < 0 || $endDate === false || $endDate < 0 || $startDate > $endDate)
return false;
$years = date('Y', $endDate) - date('Y', $startDate);
$endMonth = date('m', $endDate);
$startMonth = date('m', $startDate);
// Calculate months
$months = $endMonth - $startMonth;
if ($months <= 0) {
$months += 12;
$years--;
}
if ($years < 0)
return false;
// Calculate the days
$offsets = array();
if ($years > 0)
$offsets[] = $years . (($years == 1) ? ' year' : ' years');
if ($months > 0)
$offsets[] = $months . (($months == 1) ? ' month' : ' months');
$offsets = count($offsets) > 0 ? '+' . implode(' ', $offsets) : 'now';
$days = $endDate - strtotime($offsets, $startDate);
$days = date('z', $days);
return array($years, $months, $days);
}
?>