我在PHP中创建一个日历,在数据库中有一个日期,比方说6-10-10。
有时候我有重复的事件,存储为每周重复,所以如果日期是6-10-10,我从那天(包括那天)开始每两周重复一次活动,找到日期的最佳方法是什么从6-10-10每两周一次?
例如,假设日期是7-8-10,我该如何查看该日期是否符合我的标准?
答案 0 :(得分:3)
循环怎么样?!离散数学101:你如何判断数字是否均匀? n%2==0
你如何判断一个日期是否是(呃......)每两周一次? date%2weeks==0
折腾并获得(date-startdate)%2weeks
$startdate = strtotime("10 June 2010");
$otherdate = strtotime("8 July 2010");
$twoweeks = strtotime("+2 weeks") - time();
if($otherdate>$startdate && (($otherdate-$startdate)%$twoweeks)==0) {
// this is n * two weeks after
}
答案 1 :(得分:1)
如果这是针对日历的,那么如何使用strtotime
构建有效日期链?
// 10 dates every two weeks starting next thurdsay
$valid_dates = array();
$date_counter = 0;
$date_counter = strtotime("next thursday"); // I love being a lazy bastard!
while ($i < 10)
{
array_push($valid_dates, $date_counter);
$date_counter = strtotime("+2 weeks", $date_counter);
$i++;
}
foreach ($valid_dates as $date)
echo date("Y/m/d", $date)."<br>";
将输出:
2010/06/17
2010/07/01
2010/07/15
2010/07/29
2010/08/12
2010/08/26
2010/09/09
2010/09/23
2010/10/07
2010/10/21
答案 2 :(得分:1)
答案 3 :(得分:0)
MySQL中的DATEDIFF函数不应该是7的倍数(对于每周重复的事件),或14(对于每两周重复一次的事件)等等吗?