加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 获取一个月的第一个或最后一个星期五

发布时间:2020-12-13 16:29:20 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试编写一个这样的日历功能 function get_date($month,$year,$week,$day,$direction){ ....} $week是一个整数(1,2,3 …),$day是一天(太阳,星期一,…)或数字,取其中较为容易.方向有点混乱,因为它有不同的计算. 举个例子,我们来打电话 get_date(5,2009,
我正在尝试编写一个这样的日历功能
function get_date($month,$year,$week,$day,$direction)
{
    ....
}

$week是一个整数(1,2,3 …),$day是一天(太阳,星期一,…)或数字,取其中较为容易.方向有点混乱,因为它有不同的计算.

举个例子,我们来打电话

get_date(5,2009,1,’Sun’,’forward’);

它使用默认值,并获得5月的第一个星期天,即2009-05-03.如果我们打电话

get_date(5,’backward’);

,它返回在2009-05-24五月的第二个最后一个星期天.

也许它可以更快…
这是非常有趣的代码.

请注意,$方向为1,向前为-1,向后放轻松:)
另外,$day从星期一开始,值为1,星期日结束为7.

function get_date($month,$direction) {
  if($direction > 0)
    $startday = 1;
  else
    $startday = date('t',mktime(0,$month,$year));

  $start = mktime(0,$startday,$year);
  $weekday = date('N',$start);

  if($direction * $day >= $direction * $weekday)
    $offset = -$direction * 7;
  else
    $offset = 0;

  $offset += $direction * ($week * 7) + ($day - $weekday);
  return mktime(0,$startday + $offset,$year);
}

我已经测试了一些例子,似乎总是工作,一定要仔细检查它;)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读