首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查重复日期

检查重复日期
EN

Stack Overflow用户
提问于 2010-06-11 05:51:43
回答 4查看 897关注 0票数 1

我正在用PHP创建一个日历,在数据库中有一个日期,比如说6-10-10。

有时我有重复的事件,存储为每周重复,所以如果日期是6-10-10,并且我从那天(包括那天)开始每两周重复一次事件,那么从6-10-10每两周查找日期的最佳方法是什么?

例如,假设日期是7-8-10,我如何检查日期是否符合我的标准?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-11 05:59:51

循环是怎么回事?!离散数学101:如何判断一个数字是否为偶数?n%2==0

如果一个约会是(呃...),你怎么确定?双周刊?date%2weeks==0

再加上一个偏移量,你就得到了(date-startdate)%2weeks

代码语言:javascript
复制
$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
}
票数 3
EN

Stack Overflow用户

发布于 2010-06-11 05:56:28

如果这是一个日历,那么使用strtotime构建一个有效的日期链怎么样?

代码语言:javascript
复制
// 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>";

将输出:

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2010-06-11 05:57:34

您可以使用DATEDIFF函数。

例如

代码语言:javascript
复制
SELECT * FROM myTable WHERE ( DATEDIFF( myDate,  '2007-12-30' ) % 14 ) = 0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3018824

复制
相关文章

相似问题

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