{@ $jisang_cost   = $document->getExtraValueHTML(1) } {@ $num_str1 = preg_replace("[^0-9]", "", $jisang_cost)}   {@ $t1 = $t1 + $num_str1}


{@ $air_cost      = $document->getExtraValueHTML(2) } {@ $num_str2 = preg_replace("[^0-9]", "", $air_cost)}      {@ $t2 = $t2 + $num_str2}

 

위 방식으로 확장변수 각각 기재되어있는 목록들을 다 더하는 방식입니다.

 

 

첫번째 확장변수에 기재되는 값들은 단순한 숫자들이라 3+3 = 6 방식인데

두번째 확장변수에 기재되는 값들은 32:56:01 이런 시간 값들입니다.

 

두번째 확장변수 덧셈에서 문제가 조금 발생했는데요..

 

00:00:00 + 00:00:00 = 00:00:00 방식을 어떻게 구현해야할지 도무지 모르겠습니다 ㅠㅠ

 

만약 다 더해진 값이 01:61:00일 경우 02:01:00 으로도 변경해야하는 방법도 도무지 모르겠습니다 ㅠㅠ

 

검색을해보면 다 현재시간 값 기준에 대한 결과만 나오더라고요..

 

{@ $air_cost      = $document->getExtraValueHTML(2) } {@ $num_str2 = preg_replace("[^0-9]", "", $air_cost)}      {@ $t2 = $t2 + $num_str2}

 

여기서 어떻게 변경을 해야할지 조언 받고자 조심스레 글 올리게되었습니다 ㅠㅠ

  • profile

    모두 초 단위로 변환하여 덧셈을 한 다음, 시:분:초 형태로 다시 변환하면 됩니다.

     

    예를 들어 32:56:01과 14:28:57을 더한다면

    32:56:01 = (32 * 3600) + (56 * 60) + 1 = 118561초

    14:28:57 = (14 * 3600) + (28 * 60) + 57 = 52137초

    118561 + 52137 = 170698초

     

    초 단위로 나온 결과를 시:분:초 형태로 다시 변환하는 법:

    floor(170698 / 3600) = 47시간

    floor((170698 % 3600) / 60) = 24분

    (170698 % 60) = 58초

    sprintf('%02d:%02d:%02d', 47, 24, 58) = 47:24:58

  • profile ?
    답변 감사드립니다.
    위 내용대로라면 00:00:00 값을 계산할때에는 00:00:00이 나오는게아니고 0으로만 값이 나오게됩니다 ㅠㅠ 혹시 다른 방법은 없을까요?
  • ? profile
    당연히 0이 나와야 하고, 두 번째 방법을 사용해서 다시 00:00:00으로 변환해야지요.
  • profile ?
    아 이해했습니다 정말 감사드립니다 ㅠㅠ 진짜 이것떄문에 잠을 한숨도 못자가지고..
    혹시 하나만 더 여쭤봐도 괜찮을런지요..?

    저거와는 상관없는 질문입니다.

    확장변수 1 : 날짜
    value ex) 9/21

    확장변수 2 : 데이터
    value ex) 54

    이렇게 있다고 가정하에

    서버 시간 기준으로 이번 달의 데이터만 따로 계산할 수 있는 방법이 있을까요?

    <div style="height:25px; padding-top:10px;">
    <!--@foreach($document_list as $no => $document)-->

    <!--@foreach($list_config as $key => $val)-->

    <!--@if($val->idx == -1)-->
    <!--@else-->
    {@ $jisang_cost = $document->getExtraValueHTML(2) } {@ $num_str2 = preg_replace("[^0-9]", "", $jisang_cost)} {@ $t2 = $t2 + $num_str2}

    지금 이러한 코드로 확장변수의 값을 모두 더하고 있습니다만.. 어느부분에 어떻게 추가를해야 좋을지 조언 부탁드립니다..

    (혹시 단순한 처리 방법으로도 할 수 있는거라면 설명도좀 부탁드립니다 ㅠㅠ)
  • ? profile
    이번 달의 데이터라는 기준이 무엇인가요? 날짜는 앞부분의 9만 떼어서 date('m')과 비교하면 되겠지만, "데이터"라고 말씀하시는 54는 무엇을 의미하는지 알 수 없으니...

    아무튼 서버 시간이 2018년 9월 1일이라면 아래와 같이 현재 날짜의 여러 구성요소들을 각각 구할 수 있으니 이것과 비교해 보시면 되겠네요.
    date('Y') = 2018
    date('y') = 18
    date('m') = 09
    date('n') = 9
    date('d') = 01
    date('j') = 1
    date('H:i:s') = 12:00:00