>  Q&A  >  본문

각 PhaseId의 기간 결정

다음과 같은 배열이 있습니다:

으아악

entity_id:

을 사용하여 각 하위 배열을 재그룹화했습니다. 으아악

나를 출력한 결과:

으아악

이제 각 단계(기록, 승인, 이행, 수락, 검토)의 기간을 계산해야 합니다.

예:

로그: 1671011168777 - 1671011166077 = 2700

승인됨:1671027321749 - 1671011168777 = 16152972

구현:(1671100537178 - 1671100012012) + (1671099802675 - 1671027321749) = 73006092

수락:(1671101084788 - 1671100537178) + (1671099984979 - 1671099802675) = 729914

댓글: 1671100012012 - 1671099984979 = 27033

다음을 사용하여 각 단계를 구문 분석할 수 있었습니다.

으아악

하지만 각 단계의 지속 시간을 어떻게 계산하는지 잘 모르겠습니다.

예상 결과는 다음과 같습니다.

으아악

PHP 온라인: https://onlinephp.io/c/2270e

작업 흐름:

P粉448346289P粉448346289378일 전432

모든 응답(2)나는 대답할 것이다

  • P粉029327711

    P粉0293277112023-09-09 15:56:38

    이런 걸 시도해 보세요.

    으아악

    당신을 위한 정보입니다:

    으아악

    회신하다
    0
  • P粉587970021

    P粉5879700212023-09-09 00:02:52

    원하는 것보다 시간이 오래 걸렸지만 결과를 얻었습니다. 먼저 코드:

    으아악

    참조: https://onlinephp.io/c/92d7f

    결과는 다음과 같습니다.

    으아악

    이제 설명해보세요:

    먼저 데이터 배열이 거꾸로 보이는데 array_reverse()를 사용하여 수정했습니다. 여기서 가정은 논리적 순서가 있다는 것입니다.

    마침표를 여러 개 추가해야 할 수도 있으므로 $durations라는 배열을 사용하여 함께 추가합니다.

    그런 다음 내부 루프에 이전 스테이지 ID가 있으면 지속 시간을 계산하여 더할 수 있습니다. 마지막으로 루프의 다음 반복에 필요하기 때문에 이전 단계를 기억합니다.

    또한 많은 것들의 이름이 변수의 내용을 전달하도록 이름을 바꿨습니다.

    회신하다
    0
  • 취소회신하다