我有一个日历,我想让事件重复在一个星期的一天的一个月。一些例子是:
到目前为止,我需要的是能够知道这个月已经过去了多少周的日子(例如星期二)。
返回多少周一已经过去的我找到了一些密码。
$now=time() + 86400;
if (($dow = date('w', $now)) == 0) $dow = 7;
$begin = $now - (86400 * ($dow-1));
echo "Mondays: ".ceil(date('d', $begin) / 7)."<br/>";
这很好,但我如何使它,使我可以决定任何一周的日子?我似乎无法用我的头脑去理解代码来实现这一目标。
发布于 2013-05-23 00:54:40
对于这类事情,strtotime确实很有用。下面是支持的语法列表。使用这个月的第二个星期五重复的例子,我为您写了以下简单的片段:
<?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/进行测试。
https://stackoverflow.com/questions/16703489
复制相似问题