繁体   English   中英

MySQL / PHP,确定一天中的哪一天用于日历

[英]MySQL/PHP that determines which week a day resides on for calendar use

我正在尝试找出执行以下操作的最佳方法:

如果用户选择某天,例如2010年6月21日,我们将在每个月的第3个星期一重复一次活动,但如果用户选择2010年6月28日,则该事件将在每个月的最后一个星期一重复一次。 这就是Google日历的工作方式,我正在尝试重复该功能。

因此,基本上,我看到它的工作原理是这样的:给定日期,获取它存在的星期和日期。 (第1周,第2周,第3周,第4周和最后一周。)显然,有时第4周将是最后一周,如果是这样的话,我想默认为上周。

所以在psuedocode中:

$repeatweek = getweeknumber($date);
$repeatday = date('l', strtotime($date));


$todaysweek = getweeknumber($todaysdate);
$todayday =  date('l', strtotime($todaysdate));

if($todayday == $repeatday && $repeatweek == $todaysweek){
    echo "This is the day";
}

因此,我猜想的窍门是正确定义getweeknumber()函数,而我却花了很多时间。 特别是确定第一周和最后一周。

看一下DatePeriod

例:

<?php
$start = new DateTime("June 21, 2010");
$end = new DateTime("December 31, 2010");

$interval = DateInterval::createFromDateString('fourth monday of next month');
$period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE);

foreach ($period as $p) {
    echo $p->format("Y-m-d"), "\n";
}

2010-07-26
2010-08-23
2010-09-27
2010-10-25
2010-11-22
2010-12-27

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM