比较日期格式为1年2个月3周4天PHP

时间:2017-05-18 10:53:47

标签: php

在我正在工作的项目中,我得到了一个像

这样的年龄
1Year 2Months 3Weeks 4Days

我正在尝试比较

  

如果年龄少于8周,则为baby   如果年龄小于或等于12个月/ 1年,则为young   如果大于1年,则为adult。我尝试的代码如下。这很令人困惑。

有没有办法使用内置函数中的一些来简化它?

function getAgeGroup($age_years, $age_months, $age_weeks, $age_days) {
$age_group = 'baby';
if (!$age_years && !$age_months && (!$age_weeks || ($age_weeks <= 8 && (!$age_days || $age_days < 1)))) {
  $age_group = 'baby';
}
elseif (!$age_years && ($age_months == 1 || $age_months == 2) && (!$age_weeks && !$age_days)) {
  $age_group = 'baby';
}
elseif (!$age_years && $age_months == 1 && $age_weeks < 4 && $age_days) {
  $age_group = 'young';
}
elseif (!$age_years && $age_months == 1 && $age_weeks > 4) {
  $age_group = 'young';
}
elseif (!$age_years && ($age_months >= 2 && $age_months < 12) && ($age_weeks > 0 || $age_days > 0)) {
  $age_group = 'young';
}
elseif (!$age_years && ($age_months > 0 && $age_months <= 12) && ($age_weeks >= 8 && $age_days > 1)) {
  $age_group = 'young';
}
elseif (!$age_years && ($age_months > 2 && $age_months <= 12) && (!$age_weeks && !$age_days)) {
  $age_group = 'young';
}
elseif ($age_years == 1 && !$age_months && !$age_weeks && !$age_days) {
  $age_group = 'young';
}
elseif (($age_years > 0 || $age_months >= 12) && ($age_weeks > 0 || $age_days > 0)) {
  $age_group = 'adult';
}
elseif (($age_years > 0 || $age_months > 0)) {
  $age_group = 'adult';
}
elseif ($age_years > 1) {
  $age_group = 'adult';
}
return $age_group;
}

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情:eval.in来使用DateTimeDateInterval类。