首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这个月有多少个星期已经过去了?

这个月有多少个星期已经过去了?
EN

Stack Overflow用户
提问于 2013-05-22 23:56:02
回答 1查看 314关注 0票数 2

我有一个日历,我想让事件重复在一个星期的一天的一个月。一些例子是:

  • 每个月的第四个星期二重复
  • 每个月的第二个星期五重复
  • 等等..。

到目前为止,我需要的是能够知道这个月已经过去了多少周的日子(例如星期二)。

返回多少周一已经过去的我找到了一些密码

代码语言:javascript
运行
复制
$now=time() + 86400;
if (($dow = date('w', $now)) == 0) $dow = 7; 
$begin = $now - (86400 * ($dow-1));

echo "Mondays: ".ceil(date('d', $begin) / 7)."<br/>";

这很好,但我如何使它,使我可以决定任何一周的日子?我似乎无法用我的头脑去理解代码来实现这一目标。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-23 00:54:40

对于这类事情,strtotime确实很有用。下面是支持的语法列表。使用这个月的第二个星期五重复的例子,我为您写了以下简单的片段:

代码语言:javascript
运行
复制
<?php
    $noOfMonthsFromNow=12;
    $dayCondition="Second Friday of";

    $months = array();
    $years = array();
    $currentMonth = (int)date('m');
    for($i = $currentMonth; $i < $currentMonth+$noOfMonthsFromNow; $i++) {
        $months[] = date('F', mktime(0, 0, 0, $i, 1));
        $years[] = date('Y', mktime(0, 0, 0, $i, 1));
    }
    for ($i=0;$i<count($months);$i++){
        $d = date_create($dayCondition.' '.$months[$i].' '.$years[$i]); 
        if($d instanceof DateTime) echo $d->format('l F d Y H:i:s').'<br>';
    }
?>

这可以在:http://www.phpfiddle.org/lite/进行测试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16703489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档