我想编写一个函数,根据给定的日期获取合同终止的日期($end_date).
条件是:
在合同签订后的前3个月,我们有宽限期.因此,如果我们在前3个月结束前14天收到合同辞职,合同期限将不适用,合同终止有效期至合同创建后前3个月的最后几天有效.
如果宽限期结束,合同期限将适用,因此,只有当我们在合同期限结束前6个月收到辞呈时,辞职才有效.如果我们在合同期限结束前6个月后收到辞职,合同将续签相同的合同期限.
我有这样的信息:
$resignation_date = date('Y-m-d', strtotime($letter_of_resignation_received_date));
$contract_begin_date = date('Y-m-d', strtotime($contract_begin_date));
$contract_duration= 48; //This means 48 Months
1.条件:
- 如果$RESIGNMENT_DATE在$CONTRACT_BEGIN_DATE之后的前3个月结束前14天
- 结果:$END_DATE将是$CONTRACT_BEGIN_DATE+3个月($CONTRACT_DATION将不适用)
$grace_periode_date= date('Y-m-d', strtotime($contract_begin_date . ' + 3 months - 14 days'));
if ($resignation_date \< $grace_periode_date ) {
$end_date = date('Y-m-d', strtotime($contract_begin_date . ' + 3 months'));
}
- 条件:
- 如果$RESIGNMENT_DATE在$CONTRACT_BEGIN_DATE之后的前3个月结束前14天之后,则将应用$CONTRACT_DATION.
- 结果:$END_DATE将是$CONTRACT_BEGIN_DATE+$CONTRACT_DATION月
if ($resignation_date > $grace_periode_date ) {
$end_date = date('Y-m-d', strtotime($contract_begin_date . ' + '.$contract_duration.' months'));
}
- 条件:
- 如果宽限期没有了,我们在合同期限结束前6个月就收到了辞呈,那么合同已经续签了同样的期限.
- 结果:$END_DATE将是$CONTRACT_BEGIN_DATE+($CONTRACT_DATION*2)个月
if ($resignation_date \> $grace_periode_date && $resignation_date \> date('Y-m-d', strtotime($contract_begin_date . ' + '.$contract_duration.' months - 6 months'))) {
$end_date = date('Y-m-d', strtotime($contract_begin_date . ' + '.$contract_duration.' months + '.$contract_duration.' months '));
}
所有这些都运行得很好.问题是,如果合同是自动续签2次,那么我这样做的方式是不正确的.IM始终基于$CONTRACT_BEGIN_DATE+新持续时间.
所以如果合同已经续签了2次的话.第三名.条件将提供错误的日期.因为我没有最后一次续签的日期,我只有合同的开始日期和合同的期限.
我如何才能仅使用我拥有的信息获得正确的结束日期?