【问题标题】:get weekdays dates in a month获取一个月内的工作日日期
【发布时间】:2013-06-24 02:40:27
【问题描述】:

好的,所以目前我正在手动执行此操作

$days= array('2013-06-03','2013-06-04','2013-06-05','2013-06-06','2013-06-07','2013-06-11','2013-06-12','2013-06-13','2013-06-14','2013-06-17','2013-06-18','2013-06-19','2013-06-20','2013-06-21','2013-06-24','2013-06-25','2013-06-26','2013-06-27','2013-06-28',);

但我想将其移动到用户选择月份和 PHP 脚本生成工作日日期的汽车方式。

如果过去有人能做到这一点,那就太好了。

我仍然需要设法不包括公共假期(基于墨尔本澳大利亚公共假期)。

但我想我还是会问这个问题,因为我们的工作日比公共假期多:)

【问题讨论】:

  • 在我的手机上,所以不会写任何代码。但是查看 PHP 的 DateTime 对象。他们足够聪明,知道星期几。因此,您可以循环添加一天并检查它是否是工作日。然后,您可以使用公共假期 API 交叉引用它。
  • 不知道为什么这会被否决,因为这是一个重要的问题,对我或未来的其他人来说

标签: php arrays date days


【解决方案1】:

函数strftime 将时间戳转换为格式为“%A”的工作日名称。 http://php.net/manual/en/function.strftime.php

$timestamp=mktime(0, 0, 0, 6, 3, 2013);
$day=strftime("%A", $timestamp);

$day 将在此代码之后包含"Monday"。您现在可以使用 mktime 轻松遍历所有日期,然后检查工作日。

【讨论】:

    【解决方案2】:
    $month = 10;
    
    for ($i = 1; $i <= 31; $i++) { 
        $timestamp = mktime(0, 0, 0, $month, $i, 2012);
        if (date("n", $timestamp) == $month) {
            $day = date("N", $timestamp);
            if ($day == 1 OR $day <= 5) {
                $days[$day][] = date("D", $timestamp);
            }
        }
    }
    

    //打印 $days

    【讨论】:

      猜你喜欢
      • 2016-06-06
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多