计算日期范围内的星期天数

2024-04-21

我正在尝试使用 PHP 计算给定日期范围内的工作日数(周一-周五)。如果用户输入开始日期 (2010-12-01) 和结束日期 (2010-12-24),该函数应输出该日期范围内的工作日数。

这是我发现的,但没有帮助..

function getworkingdays_time($STARTSTAMP, $ENDSTAMP){

  $noofdays = ceil(($ENDSTAMP - $STARTSTAMP) / 86400);
    $sundaycounter = 0;
    $saturdaycounter = 0;
    $holidaycounter = 0;
    $offset = 0;
    $holidaycounter = check_holiday_range($STARTSTAMP, $ENDSTAMP);        // check holiday range


if(!defined("WORKSATURDAYS"))
{
    define("WORKSATURDAYS", 0);
}
if(!defined("WORKSUNDAYS"))
{
    define("WORKSUNDAYS", 0);
}  


    for ($i = 0; $i <= $noofdays; $i++){
        $ts = $STARTSTAMP + ($i * 86400);
        if (WORKSATURDAYS == '0' && date("l", $ts) == "Saturday"){
            ## they dont work saturdays
            $saturdaycounter ++;
        } elseif (WORKSUNDAYS == '0' && date("l", $ts) == "Sunday"){
            ## they dont work sundays
            $sundaycounter ++;
        }        
    }
    $total = $holidaycounter + $saturdaycounter + $sundaycounter;
    $offset = $total;
    if ($total > 0){
        $total = getworkingdays_time($ENDSTAMP + 86400, ($ENDSTAMP + ($total * 86400) + 86400));
        $offset += $total;
    }
    unset($holidaycounter, $saturdaycounter, $sundaycounter, $i, $noofdays, $ts, $total);
    return ($offset);
}

任何帮助将不胜感激。 非常感谢 聚苯乙烯


也许最简单的方法是将问题分为三个部分。假设“工作日”是周一到周五,则:

  1. 计算从现在到该范围内第一个星期一之间的工作日数。如果开始日期是星期一,则此步骤提供 0。
  2. Count 向后从结束日期到该范围内的最后一个星期一。如果结束日期是星期一,则此步骤提供 0。
  3. 确定第一个星期一和最后一个星期一之间的天数,除以 7,然后乘以 5。

将这三个步骤的结果相加,即可得到给定日期范围内的工作日总数。

对于假期,您最好计算该范围内的假期数并从总数中减去。

如果您在周六或周日工作,请调整前两步中的计数,并在确定该范围内有多少整周后,使用 5 以外的数字作为被乘数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算日期范围内的星期天数 的相关文章

  • 每页都包含菜单

    假设我有一个简单的 CSS 布局 我的菜单是侧面的一列 此菜单将出现在每个网页上 大约 10 个网页 如果我在这个菜单上有链接等形式的项目 我怎样才能做到这样 如果我在一页上添加链接 它会将其添加到所有页面 你能把它做成一个 PHP 页面吗
  • 如何将 gettext 字典中的术语输入 JavaScript?

    我正在尝试使用 php 和 javascript jquery 开发一个支持多种语言的网站 我正在尝试获得以下东西 高效 我需要尽可能减少这个操作的后端处理 可扩展 向翻译添加新字符串必须简单实用 问题是 我的 javascript 代码正
  • PHP HSV 到 RGB 公式理解

    我可以转换RGB价值观HSV使用以下代码 r r 255 g g 255 b b 255 h 0 s 0 v 0 min min min r g b max max max r g b r max min v max if r 0 h 0
  • 无法连接到 SMTP 服务器

    我有一个支持邮件的服务器 比如说example com 我配置了服务器并通过cpanel添加了MX记录 这样我就可以通过outlook com有地址 email protected cdn cgi l email protection MX
  • 从 PHP SoapServer 返回 PHP 数组

    我对 Soap 的 创建服务端 还比较陌生 所以提前对我正在思考的任何术语表示歉意 是否可以从使用 PHP 的 SoapServer 类设置的远程过程 Soap 服务返回 PHP 数组 我有一个 WSDL 通过盲目遵循教程构建 部分看起来像
  • 我应该存储密码的哈希值吗?

    用户系统和密码 我正在查看 MD5 内容 我想知道密码的正常 良好做法是什么 现在 我认为人们对密码进行超级加密并存储哈希值 如果是这样 密码检查如何工作 我只是让输入的密码再次经过加密过程 然后用存储的哈希值检查哈希值 对吗 这个问题可能
  • 在 PHP 中从 URL 斜杠后获取两个单词

    我需要从 URL 中获取两个单词 例如我有以下 URL http mydomain com alrajhi invoice 108678645541 http mydomain com alrajhi invoice 10867864554
  • 用于解析差异的 PHP 类

    我正在编写一个 PHP 脚本 需要解释 Git 创建的 Diff 文件 如果我想解析 Diff 文件并基本上以完全不同的格式打印它 我应该如何进行 我遇到过Text DiffPEAR 库 但该库仅创建 Diff 本身 或者更确切地说 它只需
  • PHP 邮件结果错误:“标头丢失”

    我已经使用 php 邮件表单有一段时间了 现在它无法在新网站上运行 出现以下错误结果 PHP 警告 mail function mail sendmail from 未在 php ini 中设置 或第 16 行 E home mypagef
  • json_encode 返回 200 且未定义

    我想要一个代码来添加或删除数据库书签 代码已准备就绪 它可以正确地从数据库书签中添加和删除书签 但是当我调用该函数时 它会不断返回json error反而json success即使代码有效 我想知道代码 我从其他地方获得并改编的 有什么问
  • 使用 php 和 mysql 计算日期差(以小时为单位)

    我如何使用 php 和 mysql 找到以小时为单位的日期差异 Use TIMEDIFF http dev mysql com doc refman 5 1 en date and time functions html function
  • 如何在自动完成表单的脚本中获取 json 文件的多个值

    拜托 我是 php 初学者 我想使用像这样的 json 编码的数组 http stegonia fr autocomplete index2 php http stegonia fr autocomplete index2 php 您可以看
  • 如何在 的每四个循环项之后添加

    我想在循环中的每第四个数字项之后退出循环 我想创建一个二十人的名单 在每一个tr应该是4个人 So I want to break from the loop after every 4th number of loop My one tr
  • 如何使用 Codeigniter 从另一个视图中加载视图文件,而无需通过控制器?

    我正在努力寻找此问题的解决方案 我需要从另一个视图中加载视图 我知道 通常我只需要这样做 但这一次 文件路径被传递到数据文件标记的属性 我有 a href 实际上 这是由 JavaScript 函数用来自行加载视图的 因此 当这样做时 它会
  • WooCommerce:返回特定类别中所有产品 ID 的函数

    我认为问题的标题是相当不言自明的 但要详细说明 我正在尝试在 Woocommerce 中制作自定义类别页面 我需要的是返回特定类别中的所有产品 ID 我见过这个帖子 https stackoverflow com questions 210
  • Composer 自动加载器未加载 GuzzleHttp\ClientInterface

    我正在尝试使用Guzzle http guzzle readthedocs org en latest 但我得到以下内容致命错误 致命错误 找不到类 GuzzleHttp ClientInterface var www myapp vend
  • 56 CONNECT 后收到来自代理的 HTTP 代码 403?

    使用 cUrl 从我的网页生成销售人员线索时 出现 56 在 CONNECT 后从代理接收到 HTTP 代码 403 错误 该网站的 SSL 证书已过期 UPDATED 我的代码如下 curl setopt curl CURLOPT URL
  • Laravel 5.1 date_format 验证允许两种格式

    我对传入的 POST 请求使用以下日期验证 trep txn date gt date format Y m d H i s u 这只允许这种日期 即 2012 01 21 15 59 44 8 我还想允许没有时间的日期 例如2012 01
  • 展平数组:保持索引、值等于数组中的位置

    我在尝试以特定方式展平数组时遇到了一些麻烦 这里有一个print r我想要展平的数组的视图 Array 1 gt Array 8 gt 1 9 gt 2 10 gt Array 15 gt Array 22 gt 1
  • 在 PHP 数组定义中显示重复键警告

    下面的代码是否可以得到警告 error reporting E ALL s array a gt 1 a gt 1 var export s 你唯一的希望 除了count 你自己 是你的编辑足够聪明 可以突出显示拼写错误 此屏幕截图来自 P

随机推荐