Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的条件间隔句点_Php_Conditional_Intervals_Period - Fatal编程技术网

PHP中的条件间隔句点

PHP中的条件间隔句点,php,conditional,intervals,period,Php,Conditional,Intervals,Period,我正在创建一个针对公司(在刚果)的PHP应用程序,最终帮助他们管理员工及其状态 法律部分按优先顺序分为三个部分:劳动法、集体协议、程序规则 然而,对我来说,最困难的部分是在《议事规则》中写下法律的“有条件期限”、协议和条款。例如,关于定期合同的试用期: 法律和集体协议规定: 从0到6个月,试验期为15天 如上所述,试验期为1个月 而公司的内部规则规定: 对于1至6类,试验期为5天 对于第7至8类,试验期为10天 对于第9至12类,试验期为15天 在这个典型的例子中,内部规则基于不同于法律

我正在创建一个针对公司(在刚果)的PHP应用程序,最终帮助他们管理员工及其状态

法律部分按优先顺序分为三个部分:劳动法、集体协议、程序规则

然而,对我来说,最困难的部分是在《议事规则》中写下法律的“有条件期限”、协议和条款。例如,关于定期合同的试用期:

法律和集体协议规定:

  • 从0到6个月,试验期为15天
  • 如上所述,试验期为1个月
而公司的内部规则规定:

  • 对于1至6类,试验期为5天
  • 对于第7至8类,试验期为10天
  • 对于第9至12类,试验期为15天
在这个典型的例子中,内部规则基于不同于法律的条件陈述某些东西。我很难编写一个类,在这个类中我可以存储一种类型的条件(持续时间或类别),间隔(从
x
day/month/year到
y
day/month/year,或从category
x
y
),结果(以天/月/年为单位的持续时间)

在我的v1中,我有以下内容:

'ftc_trial_periods'  => [
    [
        'left' => 'duration',
        'intervals' => [0, '6 months'],
        'result' => '15 days',
    ],
    '1 months',
];
使用strotime转换日期字符串,结果很难使用


我在考虑类似PHP类的东西,而不是日期,我会使用
DateInteval
作为间隔(从
x
y
),但不确定这是否是最好的方法。野外有更好的解决方案吗?

我认为你应该把这当作两个独立的问题:

  • 如何方便地表示业务规则
  • 如何实现基本日期计算
  • 根据我的经验,这是一个很好的库的实现部分。然而,我有一个预感,这可能不是最好的方法来制定和跟踪您的原始规则


    有一些解决方案专门用于写下这样的业务逻辑。不幸的是,我没有经验为您的案例提出具体建议。在我的脑海里,我想起了,最后,我写了一个作曲包:


    这比我想象的要简单。

    谢谢你的建议。我认为从Period或DatePeriod开始(在我的例子中)比使用业务逻辑库更好。其他的值都很简单,只是“一个特定的时期取决于类别或持续时间间隔”是目前的难题。我在等待最终的其他建议,否则你的答案会是最好的