2013. 5. 14. 14:41

날짜, 시간관련 함수


/**
 * datetime 형식을 date 형식만 가져옴
 * @param string $datetime
 * @return string
 */
function datetime2date($datetime) {
    if(empty($datetime))
        return $datetime;
    
	$tmp = explode(' ',$datetime);
	return $tmp[0];
}
/**
 * datetime 형식을 time 형식만 가져옴
 * @param string $datetime
 * @return string
 */
function datetime2time($datetime) {
    if(empty($datetime))
        return $datetime;
        
    $tmp = explode(' ',$datetime);
	return $tmp[1];
}
/**
 * datetime을 2줄로 출력
 * @param datetime $datetime
 * @return DateTime
 */
function datetime2br($datetime) {
    return str_replace(' ','<br />',$datetime);
}
/**
 * datetime을 배열로 변환
 * @param datetime $datetime
 */
function datetime2array($datetime) {
    return sscanf($datetime, '%4d-%2d-%2d %2d:%2d:%2d');
}
/**
 * datetime을 date 요일 현태로 리턴
 * @param datetime $datetime
 * @return string
 */
function datetime2format($datetime) {
    $tmp = strtotime($datetime);
    $w = date('w', $tmp);
    return date('Y.m.d '.get_week_hangul($w), $tmp);
}
/**
 * D-DAY 계산
 * @param date $ddate
 * @param date $ndate
 * @return int
 */
function dday($ddate, $ndate) {
    $tmp = strtotime($ddate) - strtotime($ndate);
    $dday = ceil($tmp / 86400);
    if($dday < 0)
        return 'D - '.abs($dday);
    else if($dday > 0)
        return 'D + '.$dday;
    else
        return '';
}
/**
 * 숫자를 요일로 변환
 * @param int $wcode
 */
function get_week_hangul($wcode) {
    $rtn = array('일','월','화','수','목','금','토');
    return $rtn[$wcode];
}
/**
 * 현재 분기 리턴
 */
function now_quater() {
    $m = date('n');
    if($m < 4)
        return 1;
    else if($m > 3 && $m < 7)
        return 2;
    else if($m > 6 && $m < 10)
        return 3;
    else 
        return 4;
}
/**
 * 분기를 시작일,종료일(날짜시간)으로 리턴
 * @param int $year 년
 * @param int $quater 분기
 */
function quater2datetime($year, $quater) {
    if($quater == 1)
        return array($year.'-01-01 00:00:00',$year.'-03-31 23:59:59');
    else if($quater == 2)
        return array($year.'-04-01 00:00:00',$year.'-06-30 23:59:59');
    else if($quater == 3)
        return array($year.'-07-01 00:00:00',$year.'-09-30 23:59:59');
    else
        return array($year.'-10-01 00:00:00',$year.'-12-31 23:59:59');
}
/**
 * 초를 시분초로 변경
 * @param int $sec 초
 * @return string
 */
function sec2hms($sec) {
	$rtn = '';
	$hour = (int)($sec / 3600);
	if($hour) {
		$sec = $sec - $hour * 3600;
		$rtn .= $hour.'시간 ';
	}
	$min = (int)($sec / 60);
	if($min) {
		$sec = $sec - $min * 60;
		$rtn .= $min.'분 ';
	}
	if($sec)
		return $rtn.$sec.'초';
	else
		return $rtn;
}