날짜 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 = @sql_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 = @sql_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 = @sql_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