날짜 24시간 표기

날짜 24시간 표기

QA

날짜 24시간 표기

본문

다음 소스중에서 어디를 고쳐야 $datetime_end 변수가 24시간표기법으로 나올까요?

 

고수님들 부탁드립니다

 

 

-----------------------------------------------------------------------------------------------

<?php
include_once("_common.php");

function alert3($message, $url = '') {
    global $is_temp;

    if ($is_temp) {
        echo json_encode(array('success' => false, 'message' => $message, 'url' => $url));
        exit;
    } else {
        alert($message, $url);
    }
}

if (!$bo_table)
    alert3("올바른 경로로 들어와주세요!");

if (!$is_member)
    alert3("로그인하여 주십시오!", $g4['bbs_path'] . "/login.php");

$ordr_idxx = $_POST['ordr_idxx'];
if (!$ordr_idxx)
    alert3("주문번호가 없습니다!");

// 컨텐츠 설정
include_once($g4['path'] . "/ezpay.config.php");

$ch_settle = $_POST['ch_settle'];
$total_mny = (int)$_POST['total_mny'];

// 게시판 설정 불러오기
// $sql = " select bo_4, bo_5 from {$g4['board_table']} where bo_table = '$bo_table' ";
$sql = " select bo_4 from {$g4['board_table']} where bo_table = '$bo_table' ";
$board_config = sql_fetch($sql);

// 구인/구직 서비스 설정 정보
$conf_4 = explode("|", $board_config['bo_4']);

// 서비스 선택
$ch_service = $_POST['ch_service'];
switch ($ch_service) {
    case "1": // 첫번째 서비스 선택
        $date_period = $conf_4[36];
        $date_type = $conf_4[37];
        $serv_price = $conf_4[38];
        break;
    case "2":
        $date_period = $conf_4[39];
        $date_type = $conf_4[40];
        $serv_price = $conf_4[41];
        break;
    case "3":
        $date_period = $conf_4[42];
        $date_type = $conf_4[43];
        $serv_price = $conf_4[44];
        break;
    case "4":
        $date_period = $conf_4[45];
        $date_type = $conf_4[46];
        $serv_price = $conf_4[47];
        break;
    case "5":
        $date_period = $conf_4[48];
        $date_type = $conf_4[49];
        $serv_price = $conf_4[50];
        break;
    default:
        $date_period = $date_type = $serv_price = "";
        break;
}

if (!$date_type) {
    alert3("열람정보 기간에 체크하여 주세요.");
}

// 만료 날짜를 계산
$date_option = "{$date_period} {$date_type}";
// 주석된 코드는 END로 이어지는 구조를 쓸 때
/*
$sql = " select * from {$g4['ezpay_gujig_member']} where mb_id = '{$member['mb_id']}' order by mb_end desc limit 1 ";
$row = sql_fetch($sql);

if($row['mb_end']) {
    $d1 = explode(" ", $row['mb_end']);
    $d2 = explode("-", $d1[0]);
    $d3 = explode(":", $d1[1]);
    if(preg_match("/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/", $d1[0])) {
        $old_time = mktime($d3[0], $d3[1], $d3[2], $d2[1], $d2[2], $d2[0]);
        $old_datetime = $row['mb_end'];

        if($g4['server_time'] >= $old_time) {
            $old_time = $g4['server_time'];
            $old_datetime = $g4['time_ymdhis'];
        }
    } else {
        $old_time = $g4['server_time'];
        $old_datetime = $g4['time_ymdhis'];
    }
} else {
    $old_time = $g4['server_time'];
    $old_datetime = $g4['time_ymdhis'];

    //$sql = " insert into {$g4['ezpay_gujig_member']} (mb_id) values ('{$member['mb_id']}') ";
    //sql_query($sql);
}
*/

// 시간 정보 가져옴
$old_time = $g4['server_time'];
$old_datetime = $g4['time_ymdhis'];

$sql = " select count(*) as cnt from $g4[ezpay_gujig_open] where ch_ordr_idxx = '$ordr_idxx' ";
$row = sql_fetch($sql);
if ($row['cnt'] > 0) {
    alert3("이미 처리되었습니다. 운영자에게 문의하세요.", "gujig_open.period.php?bo_table=$bo_table");
}

// 결제 모듈로 결제한 내역이 있는지 확인
$sql = " select count(*) as cnt from $g4[ezpay_point_charge] where mb_id = '$member[mb_id]' and ch_ordr_idxx = '$ordr_idxx' ";
$row = sql_fetch($sql);
// ch_2: 최종 변경시간
// ch_3: 시간 설정내용
// ch_4: 이용 종료시간

$paid = "false";
$sql2 = " select max(ch_no) as max_ch_no from $g4[ezpay_gujig_open] ";
$row2 = sql_fetch($sql2);

//$ch_no = $row2['max_ch_no'] + 1;
$pay_cnt = $row['cnt'];

// 결제모듈이 필요한 결제인 경우 반려
if($ch_settle != "무통장입금" && !$pay_cnt) {
//    alert3("결제 기록이 존재하지 않습니다.");
}

if($pay_cnt > 0) { // 결제 내역이 있으면
    $sql = " select * from $g4[ezpay_point_charge] where mb_id = '$member[mb_id]' and ch_ordr_idxx = '$ordr_idxx' ";
    $row = sql_fetch($sql);

    $paid = "true";
    $ch_agent = addslashes($row[ch_agent]);
    $sql = " insert $g4[ezpay_gujig_open]
        set mb_id = '$member[mb_id]',
            mb_name = '$member[mb_name]',
            ch_settle = '$ch_settle',
            ch_amount = '$row[ch_amount]',
            ch_point = '$row[ch_point]',
            ch_ordr_idxx = '$row[ch_ordr_idxx]',
            ch_app_no = '$row[ch_app_no]',
            ch_normal = '$row[ch_normal]',
            ch_res_cd = '$row[ch_res_cd]',
            ch_res_msg = '$row[ch_res_msg]',
            ch_tno = '$row[ch_tno]',
            ch_datetime = '$row[ch_datetime]',
            ch_pg_id = '$row[ch_pg_id]',
            ch_pg_key = '$row[ch_pg_key]',
            ch_ip = '$row[ch_ip]',
            ch_agent = '$ch_agent',
            ch_1 = '$paid',
            ch_2 = '$row[ch_datetime]',
            ch_3 = '$date_option',
            ch_4 = '$datetime_end',
            ch_5 = '' ";
    $result = _query($sql);
    $ch_no = mysql_insert_id();

    if (!$result)
        alert3("처리에 실패했습니다!", "gujig_open.period.php?bo_table=$bo_table");

    /***** 자동 갱신 시작 *****/
    $autoItem = array("신용카드", "무통장입금");
    if(in_array($ch_settle, $autoItem) && $row['ch_res_cd'] == "0000") {
        $sql = " select count(*) as cnt from $g4[ezpay_gujig_open] where mb_id = '$mb_id' and ch_ordr_idxx = '$ordr_idxx' ";
        $row = sql_fetch($sql);

        if($row['cnt'] > 0) {
            // 결제정보 구하기
            $sql = " select * from {$g4[ezpay_gujig_open]} where mb_id = '$mb_id' and ch_ordr_idxx = '$ordr_idxx' ";
            $row = sql_fetch($sql);
            
            // 원 결제정보 번호
            $ch_no = $row['ch_no'];
            
            // 기본 날짜정보
            $old_time = $g4['server_time'];
            $old_datetime = $g4['time_ymdhis'];
            
            // 승인 날짜 저장(필드: ch_2)
            $sql = " update $g4[ezpay_gujig_open] set ch_2 = '{$g4['time_ymdhis']}' where ch_no = '$ch_no' ";
            $result = sql_query($sql);
            if (!$result)
                alert3("처리 실패!");
            
            // 승인 날짜 기준으로 계산
            $time_end = strtotime("+{$row[ch_3]}", $old_time);
            $datetime_end = date("Y-m-d H:i:s", $time_end);
            
            // 이전 누적 날짜 기준으로 계산
            $sql2 = " select * from {$g4['ezpay_gujig_member']} where mb_id = '$mb_id' order by mb_no desc limit 1 ";
            $row2 = sql_fetch($sql2);
            $d1 = explode(" ", $row2['mb_sum']);
            $d2 = explode("-", $d1[0]);
            $d3 = explode(":", $d1[1]);
            if(preg_match("/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/", $d1[0])) {
                $old_sum_time = mktime($d3[0], $d3[1], $d3[2], $d2[1], $d2[2], $d2[0]);
                $old_sum_datetime = $row2['mb_sum'];

                if($g4['server_time'] > $old_sum_time) {
                    $old_sum_time = $g4['server_time'];
                    $old_sum_datetime = $g4['time_ymdhis'];
                }
            } else {
                alert3("승인할 수 없습니다.");
            }
            $time_sum_end = strtotime("+{$row[ch_3]}", $old_sum_time);
            $datetime_sum_end = date("Y-m-d H:i:s", $time_sum_end);
            
            // 진행 상태를 완료로 변경한다
            $sql = "update $g4[ezpay_gujig_open] set ch_1 = 'true', ch_4 = '$datetime_end' where ch_no = '$ch_no' ";
            sql_query($sql);

            // 날짜 갱신(mb_sum 이용)
            $sql = " update {$g4['ezpay_gujig_member']}
                        set mb_sum = '$datetime_sum_end',
                            mb_start = '$old_datetime',
                            mb_end = '$datetime_end'
                    where mb_no = '{$row2['mb_no']}' ";
            sql_query($sql);
        }
    }
} else { // 결제 기록이 없는 경우
    $paid = "false";
    $ch_agent = addslashes($_SERVER['HTTP_USER_AGENT']);
    $sql = " insert $g4[ezpay_gujig_open]
        set mb_id = '$member[mb_id]',
            mb_name = '$member[mb_name]',
            ch_settle = '$ch_settle',
            ch_amount = '$total_mny',
            ch_ordr_idxx = '$ordr_idxx',
            ch_datetime = '{$g4['time_ymdhis']}',
            ch_ip = '{$_SERVER['REMOTE_ADDR']}',
            ch_agent = '$ch_agent',
            ch_1 = '$paid',
            ch_2 = '{$g4['time_ymdhis']}',
            ch_3 = '$date_option',
            ch_4 = '',
            ch_5 = '$conf_4[34] $conf_4[35]|$ac_name' ";
    $result = _query($sql);

    $ch_no = mysql_insert_id();
    if (!$result)
        alert3("처리에 실패했습니다!", "gujig_open.period.php?bo_table=$bo_table");
}

/*
if($ch_settle != "무통장입금") {
    $datetime_end = date("Y-m-d H:i:s", strtotime("+{$date_option}", $old_time));
} else {
    //$datetime_end = $old_datetime;
    $datetime_end = $g4['time_ymdhis'];
}
*/

// 현재 시간을 기준으로 무조건 구함.
$datetime_end = date("Y-m-d H:i:s", strtotime("+{$date_option}", $old_time));

// 무통장 여부에 따라 달라짐.
if($ch_settle != "무통장입금") {
    $mb_sum = $datetime_end;
} else {
    $mb_sum = $old_datetime;
}

// 이전에 신청한 내역이있는지 검증.
$sql = " select * from {$g4['ezpay_gujig_member']} where mb_id = '{$member['mb_id']}' order by mb_end desc limit 1 ";
$row = sql_fetch($sql);
if($row['mb_sum']) {
    // 있을 때 mb_sum 처리
    // 무통장 여부에 따라 달라짐.
    $d1 = explode(" ", $row['mb_sum']);
    $d2 = explode("-", $d1[0]);
    $d3 = explode(":", $d1[1]);
    if(preg_match("/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/", $d1[0])) {
        $old_sum_time = mktime($d3[0], $d3[1], $d3[2], $d2[1], $d2[2], $d2[0]);
        $old_sum_datetime = $row['mb_sum'];

        if($row['mb_end'] > $row['mb_sum']) {
            // 처리 취소
            $sql = " delete from $g4[ezpay_gujig_open] where mb_id = '$member[mb_id]' and ch_ordr_idxx = '$ordr_idxx' ";
            sql_query($sql);
            alert3("이전에 승인되지 않은 건이 있습니다. 관리자에게 문의해주십시오.");
        }

        if($g4['server_time'] > $old_sum_time) {
            $old_sum_time = $g4['server_time'];
            $old_sum_datetime = $g4['time_ymdhis'];
        }
    }

    if($ch_settle != "무통장입금") {
        $mb_sum = date("Y-m-d H:i:s", strtotime("+{$date_option}", $old_sum_time));
    } else {
        $mb_sum = $old_sum_datetime;
    }
}

//$sql = " update ezpay_ezpay_gujig_member set mb_expired = '$datetime_end' where mb_id = '{$member['mb_id']}' ";
//$result = _query($sql);
//$sql = " update {$g4['ezpay_gujig_member']} set mb_end = b where mb_id = '{$member['mb_id]}' ";
if ($is_temp) {
    echo json_encode(array('success' => TRUE, 'wr_id' => $ch_no));
    exit;
} else {
    $ch_no = mysql_insert_id();
    $sql = " insert into {$g4['ezpay_gujig_member']} (mb_id, ch_no, mb_data, mb_start, mb_end, mb_sum, mb_day)
            values ('{$member['mb_id']}', '$ch_no', '$old_datetime', '$old_datetime', '$datetime_end', '$mb_sum', '{$date_option}') ";
    sql_query($sql);

    if (!$result)
        alert3("등록에 실패했습니다.", "gujig_open.period.php?bo_table=$bo_table");

    if ($paid == "true") {
        alert3("등록해주셔서 감사합니다. $datetime_end 까지 이용 가능합니다.", $g4['bbs_path'] . '/board.php?bo_table=' . $bo_table);
    } else {
        alert3("등록해주셔서 감사합니다. 승인이 날 때까지 기다려주시길 바랍니다.", $g4['bbs_path'] . '/board.php?bo_table=' . $bo_table);
    }
}
?>

이 질문에 댓글 쓰기 :

답변 2

2021-08-03 13:00 이렇게 나와야 하는데 2021-08-03 01:00
이렇게 출력됩니다

 

-------------------

2021-08-03 01:00 는 am,pm 구분없이 24시간 표시가 맞는 듯 하네요.

원하는 값이 13:00 라면, 그 전에 어딘가에서 값이 변했거나, 처음부터 01:00 값일 가능성이거나...:

그럴 것 같네요. 

그건 직접 각 datetime_end   마다 모니터링 하시던가 해야할 듯. 

 

지금이 24시간 표기법 아닌가요?

2021-08-03 23:10

맨 아래 alert 부분에

alert3("등록해주셔서 감사합니다. $datetime_end 까지 이용 가능합니다.", $g4['bbs_path'] . '/board.php?bo_table=' . $bo_table);

이 부분  $datetime_end  출력이 24시간제로 안나오네요

// 현재 시간을 기준으로 무조건 구함.
echo $datetime_end = date("Y-m-d H:i:s", strtotime("+{$date_option}", $old_time));
이 부분 출력해보고 나오면, 아래쪽으로 이동하면서 echo $datetime_end; 해봐서
어느 부분에서 삭제되는건지 확인해보세요.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,528 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT