From 65cac899a6ba7fb23ecba4d9640899de3ddfaf06 Mon Sep 17 00:00:00 2001 From: zero Date: Mon, 3 Dec 2007 07:05:07 +0000 Subject: [PATCH] =?UTF-8?q?=EC=9D=BC=EC=9E=90=20=ED=8F=AC=EB=A7=B7?= =?UTF-8?q?=EC=9D=84=20=EB=8B=B4=EB=8B=B9=ED=95=98=EB=8A=94=20zdate()?= =?UTF-8?q?=ED=95=A8=EC=88=98=EC=97=90=EC=84=9C=20=EC=9D=BC=EC=9E=90?= =?UTF-8?q?=EC=9D=98=20=EB=85=84=EB=8F=84=EA=B0=80=201970=EB=85=84=20?= =?UTF-8?q?=EC=9D=B4=EC=A0=84=EC=9D=B4=EB=A9=B4=20time()=ED=95=A8=EC=88=98?= =?UTF-8?q?=EB=A5=BC=20=EC=93=B0=EC=A7=80=20=EC=95=8A=EA=B3=A0=20=EC=A7=81?= =?UTF-8?q?=EC=A0=91=20=EB=AC=B8=EC=9E=90=EC=97=B4=20=ED=8C=8C=EC=8B=B1?= =?UTF-8?q?=ED=95=98=EC=97=AC=20=EC=9E=84=EC=8B=9C=EB=A1=9C=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=EB=90=98=EB=8F=84=EB=A1=9D=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@3143 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- config/func.inc.php | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/config/func.inc.php b/config/func.inc.php index 7dc13b7ca..decb45b49 100644 --- a/config/func.inc.php +++ b/config/func.inc.php @@ -246,6 +246,15 @@ return mktime($hour, $min, $sec, $month?$month:1, $day?$day:1, $year)+$gap; } + /** + * @brief 월이름을 return + **/ + function getMonthName($month, $short = true) { + $short_month = array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); + $long_month = array("January","February","March","April","May","June","July","August","September","October","November","December"); + return !$short?$long_month[$month]:$short_month[$month]; + } + /** * @brief YYYYMMDDHHIISS 형식의 시간값을 원하는 시간 포맷으로 변형 * @param str YYYYMMDDHHIISS 형식의 시간값 @@ -253,8 +262,10 @@ * @return string **/ function zdate($str, $format = "Y-m-d H:i:s") { + // 대상 시간이 없으면 null return if(!$str) return; + // 언어권에 따라서 지정된 날짜 포맷을 변경 switch(Context::getLangType()) { case "en" : case "es" : @@ -264,6 +275,23 @@ break; } + + // 년도가 1970년 이전이면 별도 처리 + if((int)substr($str,0,4)<1970) { + $hour = (int)substr($str,8,2); + $min = (int)substr($str,10,2); + $sec = (int)substr($str,12,2); + $year = (int)substr($str,0,4); + $month = (int)substr($str,4,2); + $day = (int)substr($str,6,2); + return str_replace( + array("Y","m","d","H","h","i","s","a","M", "F"), + array($year,$month,$day,$hour,$hour/12,$min,$sec,$hour<=12?"am":"pm",getMonthName($month), getMonthName($month,false)), + $format + ); + } + + // 1970년 이후라면 ztime()함수로 unixtime을 구하고 date함수로 처리 return date($format, ztime($str)); }