php判断日期范围,PHP日期范围检查 (PHP Date Range Check)

最佳答案

英文原文

$datetime1 = new DateTime('2011-10-20');

$datetime2 = new DateTime('2011-10-29');

//PHP 5.3.0

$interval = $datetime1->diff($datetime2);

echo $interval->format('%R%a days');

//PHP 5.2.2

var_dump($datetime1 < $datetime2);

$datetime3 = new DateTime('2011-05-05');

$datetime4 = new DateTime('2011-10-10');

if ($datetime3 > $datetime1 && $datetime2 > $datetime1 && $datetime3 < $datetime2 && $datetime2 < $datetime2) {

//valid range

}//end if

中文翻译

$ datetime1 = new DateTime('2011-10-20');

$ datetime2 = new DateTime('2011-10-29');

// PHP 5.3.0

$ interval = $ datetime1-&gt; diff($ datetime2);

echo $ interval-&gt;格式('%R%a days');

// PHP 5.2.2

var_dump($ datetime1&lt; $ datetime2);

$ datetime3 = new DateTime('2011-05-05');

$ datetime4 = new DateTime('2011-10-10');

if($ datetime3&gt; $ datetime1&amp;&amp; $ datetime2&gt; $ datetime1&amp;&amp; $ datetime3&lt; $ datetime2&amp;&amp; $ datetime2&lt; $ datetime2){

//有效范围

}//万一

$datetime1 = new DateTime('2011-10-20');

$datetime2 = new DateTime('2011-10-29');

//PHP 5.3.0

$interval = $datetime1->diff($datetime2);

echo $interval->format('%R%a days');

//PHP 5.2.2

var_dump($datetime1 < $datetime2);

$datetime3 = new DateTime('2011-05-05');

$datetime4 = new DateTime('2011-10-10');

if ($datetime3 > $datetime1 && $datetime2 > $datetime1 && $datetime3 < $datetime2 && $datetime2 < $datetime2) {

//valid range

}//end if

$ datetime1 = new DateTime('2011-10-20');

$ datetime2 = new DateTime('2011-10-29');

// PHP 5.3.0

$ interval = $ datetime1-&gt; diff($ datetime2);

echo $ interval-&gt;格式('%R%a days');

// PHP 5.2.2

var_dump($ datetime1&lt; $ datetime2);

$ datetime3 = new DateTime('2011-05-05');

$ datetime4 = new DateTime('2011-10-10');

if($ datetime3&gt; $ datetime1&amp;&amp; $ datetime2&gt; $ datetime1&amp;&amp; $ datetime3&lt; $ datetime2&amp;&amp; $ datetime2&lt; $ datetime2){

//有效范围

}//万一

参考答案2

$start = strtorime($contract_start_date);

$end = strtotime($contract_end_date);

$required_start = strtotime("2011-05-05");

$required_end = strtotime("2011-10-10");

if ($end > $required_end or $end < $required_start)

{

//out of range

}

if ($start < $required_start or $start > $required_end)

{

//out of range

}

参考答案3

This should give you exactly what you're looking for:

define(CONTRACT_START, "2011-10-20");

define(CONTRACT_END, "2011-10-29");

function checkDateRange($dateArray)

{

foreach($dateArray as $dateStr)

{

$curDate = strtotime($dateStr);

if($curDate < strtotime(CONTRACT_START) || $curDate > strtotime(CONTRACT_END))

{

return false;

}

}

return true;

}

$dates = array( 0 => "2011-10-02", 1 => "2011-10-25");

if(checkDateRange($dates))

{

echo "Dates are within range";

}

else

{

echo "Dates are NOT within range";

}

参考答案4

Find below code to get date difference in days, month and year:

function datediff($date1,$date2,$format='d'){

$difference = abs(strtotime($date2) - strtotime($date1));

switch (strtolower($format)){

case 'd':

$days = round((($difference/60)/60)/24,0);

break;

case 'm':

$days = round(((($difference/60)/60)/24)/30,0);

break;

case 'y':

$days = round(((($difference/60)/60)/24)/365,0);

break;

}

return $days;

}

//Example

echo datediff('2011-06-1','2010-8-30','D') . ' Days
';

echo datediff('2011-06-1','2010-8-30','m') . ' Months
';

echo datediff('2011-06-1','2010-8-30','y') . ' Years
';

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值