根据当天

时间:2016-06-15 02:28:25

标签: php datetime

我正在组建一个会员网站,该会员网站使用按比例系统收取会员费。

EG

$ 75.00从4月1日YY - 31月YY 但是如果你在9月YY左右加入,那么你只需支付38.00美元的按比例

我目前的编码工作正常 - 没有问题。

但是想知道有没有办法动态更改下面的结束日期($ your_date),所以我不必每12个月手动修改一次?

例如,如果今天的日期是2017年2月1日,则下面的$ your_date是正确的。

但是,如果今天的日期是2017年5月14日,那么$ your_date当然不正确。

会员年度从今年4月1日/去年 - 今年3月31日开始,所以它将是

如果今天< =今年3月31日&&& > =今年4月1日/去年做了一些事情......



 <?php
     $now = time(); // or your date as well
     $your_date = strtotime("2017-03-31");
     $datediff = $your_date - $now;
     $SOS = floor($datediff/(60*60*24)*0.205);
     $ORD = floor($datediff/(60*60*24)*0.115);
     $GEN = floor($datediff/(60*60*24)*0.03);

?>
&#13;
&#13;
&#13;

或者我已经使用了我正在使用的代码,并且有一些更简单的东西吗?

2 个答案:

答案 0 :(得分:0)

这有点复杂,但我想你想要:

  

如果当前日期是4月或更晚,那么3月31日下一个年,否则它将于3月31日年。

那总结一下吗?当然,如果他们在3月31日应用 ,则需要支付0.00美元的费用......

所以我认为代码应该是:

$your_year = ( date('m')>'3' ? ((int)date('Y')+1) : date('Y') )
$your_date = strtotime( $your_year . "-03-31" )

答案 1 :(得分:0)

下面的PHP是故意冗长的,以便每行解释自己:

$Current_Year = date('Y');
$Current_Month = date('n');
$Current_Day = date('j');

$Next_Year = ($Current_Year + 1);

if ($Current_Month < 4) {
$Expiration_Year = $Current_Year;
}

if ($Current_Month > 3) {
$Expiration_Year = $Next_Year;
}

# Checks if date is March 31st
if (($Current_Month == 3) && ($Current_Day == 31)) {
$Expiration_Year = $Next_Year;
}

$Expiration_Date = $Expiration_Year.'-03-31';