1

我需要能够检查给定日期是否在一个范围内,例如。两周。

例如,如果我设置了开始日期,即。2013 年 1 月 5 日(星期三)并想了解目标日期 2014 年 1 月 1 日(也是星期三)是否在开始日期的两周范围内,最好的方法是什么。

我能想到的一种选择是循环使用 strtotime() 直到我到达或超过目标日期,但想知道是否有更好、更有效的方法来做到这一点。最好是我可以与其他范围一起使用的东西,例如。季刊之类的。

谢谢你的帮助。

4

2 回答 2

0

你是对的,strtotime但我不明白你为什么要循环。你可以使用这样的东西:

$fortnight = 14 * 86400; // Fortnight in seconds.
$start = strtotime("01/05/2013");
$check = strtotime("01/01/2014");

// Check if the date is within a fortnight of start date
if ($start > $check && $start - $check <= $fortnight) {
  // Check date is within a fortnight before start date.
}
else if ($start < $check && $check - $start <= $fortnight) {
  // Check date is within a fortnight after start date.
}
于 2013-06-07T03:48:35.060 回答
0

利用

if ( ( strtotime($targetdate) - strtotime($startdate) ) <= (14 * 24 * 60 * 60) )

如果你想要每季度,那么它变成

if ( ( strtotime($targetdate) - strtotime($startdate) ) <= (3 * 30 * 24 * 60 * 60) )
于 2013-06-07T03:43:59.537 回答