我想计算用户输入的总日差
例如,当用户输入
start_date = 2012-09-06
和 end-date = 2012-09-11
现在,我正在使用此代码查找差异
$count = abs(strtotime($start_date) - strtotime($end_date));
$day = $count+86400;
$total = floor($day/(60*60*24));
总计的结果为6。但是问题是我不想包括周末(星期六和星期日)的日子
2012-09-06
2012-09-07
2012-09-08 Saturday
2012-09-09 Sunday
2012-09-10
2012-09-11
所以结果将是4
-—更新-
我有一个包含日期的表,该表的名称是假期
例如表格包含 2012-09-07
因此,总天数为3,因为它没有计算假期日期
我该如何将输入中的日期等同于表中的日期?
很容易与我的最爱DateTime
,DateInterval
和DatePeriod
$start = new DateTime('2012-09-06');
$end = new DateTime('2012-09-11');
// otherwise the end date is excluded (bug?)
$end->modify('+1 day');
$interval = $end->diff($start);
// total days
$days = $interval->days;
// create an iterateable period of date (P1D equates to 1 day)
$period = new DatePeriod($start, new DateInterval('P1D'), $end);
// best stored as array, so you can add more than one
$holidays = array('2012-09-07');
foreach($period as $dt) {
$curr = $dt->format('D');
// substract if Saturday or Sunday
if ($curr == 'Sat' || $curr == 'Sun') {
$days--;
}
// (optional) for the updated question
elseif (in_array($dt->format('Y-m-d'), $holidays)) {
$days--;
}
}
echo $days; // 4
问题内容: 我的数据库中有一个date_created字段: 有什么办法可以按周末/工作日筛选date_created?我知道python的date.weekday()根据星期几返回0-6,所以我想使用类似以下内容: 问题答案: Django附带了一个工作日字段查询。 http://docs.djangoproject.com/en/dev/ref/models/querysets/#week-d
问题内容: 该函数似乎只返回false。你们有没有一样?我敢肯定,我正在忽略一些东西,但是,新鲜的眼睛和所有这些… 我使用以下命令调用该函数: 问题答案: 如果您的PHP> = 5.1: 除此以外:
问题内容: 嗨,我正在使用jquery-uidatepicker选择date和date.js来查找两个日期之间的差异。 现在的问题是我想从计算中排除周末(周六和周日)。我该怎么办? 例如,用户选择开始日期(13/8/2010)和结束日期(16/8/2010)。由于14/8/2010和15/8/2010是工作日,而不是总共4天,所以我希望只有2天。 这是即时消息正在使用的代码: 问题答案: 也许其他
问题内容: 我需要找到给定月份和年份的所有周末日期。 例如:对于01(月),2010(年),输出应为:所有周末日期:2,3,9,10,16,17,23,24,30,31。 问题答案: 这是带有描述步骤的注释的粗略版本:
问题内容: 我以前曾发布过有关此内容的文章,这有助于我获得以下SQL: 这给了我以下结果: 我在尝试实现以下格式时遇到了一些麻烦: 任何人都可以提供帮助吗?我将不胜感激… 问题答案: SELECT fname, MONTH(eventDate), SUM(IF(WEEKDAY(eventDate) < 5,1,0)) AS WeekdayCount, SUM(IF(WEEKDAY(eventDat
问题内容: 我有一个工作单模型,其中包含何时需要工作单的字段。为了获得工作单的列表,以及那些需要提前完成的工作单,我这样做: 这很好用,但是只有在该字段中确实有一个值的情况下才可以。如果没有必需的日期,则值为。然后,工作单列表的所有顶部都带有,然后按正确的顺序排列其余的工作单。 如何在底部找到? 问题答案: 你可能需要在order_by部分的date_is_null之前加一个-,但这是控制行为的方